Make use of overloaded methods
Make BillingSystem accept other objects that implement the two interfaces

 - Namely CustomerDatabase and TariffLibary interfaces
 - To allow tests to mock the database
Initial JUnit test