refactored assembly-units

goal: make the code more robust
means: make everything more verbose, simplify control-flow, avoid code-duplication

We can now (better) handle full inventories, changing inventories (e.g. moving a chest, placing a new chest) etc.

I also tried to avoid units crashing into each other (e.g. with speed upgrades installed, the export-unit would pick up an item before the drill has moved away, because it took longer to spin down), made sure that claws need to open/close before moving items etc.

I tested this for quite a while and was unable to break it, but by all means go ahead and try to brake it yourself, there might still be regressions that I overlooked. If nothing else, it should now be easier to fix any remaining issues.