Optional service

This pull request is *not* intended to be merged as-is!

It uses a [temporary branch of scijava-common](https://github.com/scijava/scijava-common/compare/optional-services) to resolve the problem that some services *want* to fail to initialize under certain circumstances, while others don't.

@hinerm and @ctrueden could you have a look?