Move `part?` to Variant model

The assemblies association defined in Product was not correct. We don't
associate products with products, we only product with their parts which
are variants

Not completely sure but the `part?` method in Variant might help to
either prevent multi-level nesting or provide that feature right, as
mentioned in #45

fixes #45