Mind you, this doesn't actually fix that most of these are _missing_ that is a subsequent commit
Somewhat replaces some earlier work done by hg/lg, but much more complete, so we kept it as is, because it's bringing in even more parts after this. Reviewed-by: Karl Palsson <karlp@tweak.net.au>