Add CodeClimate code coverage
Create basic Product class
Add Product#params
Add Product::Identity

- Product#params calls #params on each attribute to cascade parametrization

Fix identity parameters to reflect current system
Extract Product::Identity#params method into module

- This code is used by (nearly) every resource
- Extract #params spec into shared examples
Make spec file naming consistent
Add Product::SalesChannel resource
Add Product::Description resource
Add Product::SalesChannelCollection
Add Product#brand_id
Add Product::FinancialDetails and Product::TaxCode
Add Product::StockDetails

- Create StockDetails class
- Integrate use of class into Product
Use declarative syntax to define attributes

- Attributes declared in the class via 'attribute :name'
- The next step is to move the common code for resources into an abstract class and inherit from that.
Use AbstractResource to DRY up resource classes

  - Moved into AbstractResource
    - initialization
    - attribute creation
    - parametrization (via mixin)