Refactored ATM into account

The ATM was an unnecessary abstraction. Removed the ATM and implemented
the cash withdrawal based around the account.

Also refactored code into component parts.