Adjust the extension logic to comply with Spree 2.0 stock API

This is what I've got so far to make it work with Spree 2.0. I still need to do more tweaks on the UI and improve the test coverage as much as possible since we may need to change some important aspects of spree core.

As we talked I believe this is how the extension should behave:

* The store doesn't have to create inventory units for a product assembly itself. Instead it manages inventory units and stock items for its parts only.
* Customer can only purchase a product assembly if all of its parts have stock or all of its parts have the `backorderable` attribute `true`.
* Customer should only see the assembly product on the checkout delivery step, not the parts that composes the assembly.
* On the backend admin should be able to edit the assembly quantity, not the quantity of the parts directly as that will lead  to confusion on what really composes the product assembly.

I'm trying to get the backend management working now. But it seems to be a bit tricky without overriding the whole orders shipment partial.

Once we agree the extension works as expected I'll merge it into master.