Implement "getchains" RPC command to monitor blockchain forks.

Port over https://github.com/chronokings/huntercoin/pull/19 from
Huntercoin:  This implements a new RPC command "getchains" that can be
used to find all currently active chain heads.  This is similar to the
-printblocktree startup option, but it can be used without restarting
just via the RPC interface on a running daemon.
Yes, branchlen==0 is equivalent to isbest.  So if you prefer, we can drop the "isbest" field and just have "branchlen".  The name was suggested by Gavin, IIRC, but I can change it to "fork_distance" if that is clearer?