Unit tests and refactor

Working on adding unit tests and getting a good test coverage.

On the way, I'm trying to unify some duplicate code especially related to launching btcd/btcwallet and connecting rpc client.