Refactor credit/debit_amounts onto Plutus::Account

These functions are defined identically in every child class of
Plutus::Account, so they might as well be consolidated onto the base
class instead.
Refactor all balance calculations into Plutus::AmountsExtension

This uses the ActiveRecord associations extension feature to add
a #balance method onto the has_many :amounts relations.
Refactor Plutus::Transaction validation to use AmountsExtension

This reduces the number of different pieces of code that sums
Amounts, incidentally also catching a previously unnoticed bug in
Plutus::Transaction#difference_of_amounts, captured in the updated
spec.
Simplify Plutus::Account spec
Refactor Plutus::Account children to use a shared example group
Refactor Plutus::Amounts to use shared example groups
Simplify Plutus::Transaction spec
Move shared examples into spec/support/
Merge pull request #15 from willglynn/balance_refactoring

Balance refactoring
Re-add account subtype class method tests
Merge pull request #16 from willglynn/refactor_specs

Refactor specs