Extract into module code protecting against Float bugs
Add Parametrizable tests to AbstractCollection subclasses

- Fix AbstractCollection.params so they are generated as hash and keys instead of usual Array
- Add ProductOptions attributes (which may be custom?) so the params hashes are the same (:disk,:colour,:diameter)
- Make tested Amounts values that will be converted to Floats to make sure they are not being rounded to the nearest whole number. (This bug was fixed when Amountable#unprotect_number() was added.)
Actually test the AbstractResource#params code in PriceList
Fix typo in a test description
Merge pull request #11 from allolex/bugfixes

Bugfixes and test coverage improvements