wallet encapsulation

hopefully a proper rebasing of https://github.com/bitcoin/bitcoin/pull/2075

The goal here is to work toward a clean interface to the wallet object. For now this involves moving code out of rpc*.cpp which deals with wallet internals and making that code into methods on the CWallet object.