Adding __setstate__ magic resolves pickle error

By adding the __setstate__ method an infinite loop is avoided regarding
the use of __getattr__ on the ProductAttributesContainer model.

Moving tests into appropriate folder
Merge pull request #570 from mgmtech/issue/554/pickling-productattr-infiniteloop

Resolve pickle error for ProductAttributesContainer