Refactored Order->calculate() into it's own OrderTotalCalculator class.
Some other general tidy in Order