Refactored Account, Stock and Client to better support later code modifications

Account was very tightly coupled with CSVReader and CSVWRiter which would have made any future code modifications a pain in the butt. 

I refactored a lot of code in it and moved all the account functionality into two classes AccountService and AccountRepository. The former controls all the account functionality: adding, updating and clearing accounts while the latter is an interface that CSVAccountRepository implements and provides read/write access to the provided accounts.csv file.

Some of the Stock functionality was also moved to StockService for the same reasons.