Use methods instead of magic properties
Added product collection surcharge factory

This class can generate surcharges for payment and shipping methods
Use new TaxClass method to calculate tax free price
ProductCollectionSurcharge can now store its tax number

Tax number is an incremental numbering of taxes added to taxes in the
collection. This allows someone to see what taxes are applied in
which products (and surcharges).
Veery ugly first implementation of Model method to find surcharges
Method to split taxes for a surcharge over all collection products
Product collection uses new Model method to find surcharges
Applied new surcharge hook for shipping and payment methods
Updated formatSurcharge method to work with models
CS