Performed design changes by moving error handling out of Calculator.
Calculator has been turned into a Singleton to avoid more than one
instance at a time. Tests have been updated accordingly.