Refactor out spoon registery in favor of DependencyInjection component

Removes all Spoon::get/set/exists calls and move them all to the DI Container. To be able to this I needed to pass the kernel to several other class because they did not have access to the container yet. Because of this it will break backwards compatibility.

See UPGRADE doc for more info.

This completes https://github.com/forkcms/forkcms/issues/406