Chain server and wallet updates

* Revert saving wallet to disk on every key import (slowed down tests too much)
* Allow chain server to be used with derived databases (for testing derived clients e.g. DNS CLI)
* Add wallet function `collect_inputs_and_sign` to add appropriate inputs to cover desired outputs + minimum network fee (simplifies transaction creation; see DNS wallet for example)
* Fix typos

Sorry about the whitespace changes--you can ignore them on the GitHub diff by appending ?w=1 to the URL.