Created database class Database based on sqlite
moved endpoints to use database class
moved block chain to use database class

This deprecates the Berkeley DB
Changed SQLite version to use Spendings / Unspents instead of Input and Outputs. Enables easy pruning and halves the sir of the database
Added Logger class to remove use of sprint
Improved the Database class to be a very elegant design enabling queries such as: vector<Block> blocks = queryColRow<Block(int, uint256, int, int)>("SELECT ver, hash, ...", bla, bla);
Queries are automatically prepared on first issue.
Huge commit enabling the MerkleTrie, augmenting every block with a hash of all spendables.

Moved everything to a new database format:
* Blocks (with a count = height+1, to avoid having the element of 0) all block header elements
* Confirmations referencing the block it belongs to as well as the Transaction fields
* Unspents are unspent tx outputs. Once an output is spent it is stored as a:
* Spendings containing a trout and txin - they can be used to reconstruct transactions and blocks, but they can also just be purged

There are two types of indexes for indexing unspents:
* Database
* Trie, which can be authenticated
They are not enabled simultaneously

Tests have been added for both the authenticated trie and the sqliterate database interface

Changes are mainly done in BlockChain.h/cpp