Fixed bug causing a crash in the event of a reorg or a non-mainchain block: (reason the height in BlockTree was calculated as _heights.size(), but _heights does also include non trunk blocks from _branches, hence the height was wrong. Fixed by using height = _trunk.size()-1)

Fixed other bug causing duplicated during block download nAskedForBlocks = -2 -> 0

Prepared for RPC for Pool backends - new classes:
* Payee - could be anything from a wallet to a static bitcoin address
* Pool - an interface for a pool and also a PoolMethod

More of this later
Unit tests for BlockTree