Added multi-currency support and some code optimization.

Hello!

I've made an multi-currency support for Plutus and some code optimization, please check out it. [Here](http://www.mscs.dal.ca/~selinger/accounting/tutorial.html) you could find an explanation how does multi-currency work (through trading accounts). 

Also a have found that using subclasses for Amount it is not the good solution. Maybe it would be better to use the minus sign of the value to determine debit or credit amount. For the current implementation there is a lot of sql queries which could be minimized if use another approach.

Any thoughts appreciated. Thank you.