Bugfix: protected against non-existent paths leading to undesired relative paths.
(cherry picked from commit 9fd8e6f)
Refactored the existing compiler passes, which detect implementors of certain interfaces and hook up up services to one another, into a generalized version that takes inspiration from OSGi.

Bundles, before passing the compiler pass to the DI container, set it up with information about which of their services "cater for" or "consume" certain interfaces. The compiler pass then checks service definitions for implementations of these interfaces and hooks up the services as either a client or a provider to the bundle's own service.

For instance, a service that wishes to use the Database Service just needs to implement DatabaseServiceAware, and the database bundle will notice that and hook the client up. This relieves client bundles of the responsibility to set up their service definitions correctly. In particular, they don't need to know the service id of the provider anymore.

Thanks to Symfony's caches, this process should bear no performance penalty.
(cherry picked from commit bc2199f)
Puled up DatabaseServiceAware.
(cherry picked from commit 59bf744)
WIP: Config service to store and retrieve application config (i. e., configuration specific to the business domain, *not* stuff like database passwords etc.) to / from the db.
(cherry picked from commit f42c0d7)
Made rendering of menu recursive.
(cherry picked from commit 0e2a6b6)
Switched to an object oriented view.
(cherry picked from commit bb7e571)
Moved some functionality to a base class for reuse.
(cherry picked from commit 6dc97ea)
Added a view that can contain forms.
(cherry picked from commit e33243c)