Fixed Namespace problem

Incurred by incomplete conversion to DLL
More fiddly stuff

1. Added some comments
2. Rearranged Print functions to reduce duplicated code
3. Removed Utils class
4. Minor refactoring
Moved PrintTransactions inside TransactionHistory

Because it is application specific.
Right now it is a bit cheesy because it checks for the transaction type.