Added ability to pass parameters to screens

Using string key-value pairs.
New accounts can start with a negative balance
Added interface for serializing objects

Using string key-value pairs.
Added button for withdrawals

Inside the transaction history screen there are now two buttons, one for
creating deposits and the other for withdrawals.
Generalized transactions

Transactions can now be different types. With this, also reworked the
SQL method for saving transactions to make use of the new
SerializableData interface. Also made the SQL-based model the default
one.
Changed presenter to support new transaction type
Fixed transaction application

Uses the applyToAccount method defined in Transaction rather than always
adding to the account's balance.