completed refactoring and missing implementations

Please review the changes.
Summary of Changes:
1. Introduced Account hierarchy
2. Added compound interest calculator
3. Introduced enums for AccountType and TransactionType
4. Made Account/Transaction immutable for security and concurrency
5. Made some methods final on Account to prevent overriding.
6. Various refactoring such as changing double to BigDecimal to avoid double precision issues on non-integral calculations especially when this is a Banking application, package name changes.
7. Added unit test for MaxiSavingAccount where withdrawal is within last 10 days which enforces interest rate of 0.1% rather than 5%.
8. Added assumed features like, minimum balance checks on withdrawals.
9. Added TODOs for things which I think can be improved upon.