NEXUS-7303: enable basic JSR-250 lifecycle support

https://issues.sonatype.org/browse/NEXUS-7303

Use `@PostConstruct` and `@PreDestroy` to mark lifecycle methods. You still need to inject or depend on the component at least transitively so it will be created in the first place (alternatively you could mark it as eager) but once created it will be managed according to JSR-250.

Note: shutdown is currently centralized in `NxApplication` with components being disposed of in reverse order of their creation. This will be changed in a subsequent PR so that stopping a bundle will lead to disposal of its components. Interleaving JSR-250 with the Lifecycle API from the goodies library is also being investigated.