Synchronization now warns and throws exception if account in use

BankAccount is now an abstract superclass rather than an interface

Added a new BankAccount => BusinessAccount that allows by default
transfers between accounts