Cleanup of User Balance Calculator

Changes based on Rohans comments in #311...
1) Cleaned up the messy commits on the pull request
2) Tweaks and clean up
3) Removed passing objects from method call in calculator. Obviously it makes sense to only pass in method OR constructor. Given the calculator makes no sense without both distributor and customer objects best use them in initialisation.

Thanks!