ServiceHelper: add support for "non-strict" mode

Now it is possible to load services in either strict mode or non-strict
mode, depending on the value of the "boolean strict" parameter. Now, if
strict mode is false, _all_ service classes are essentially treated as
"optional" for the purposes of initialization.
Context: add ctor arg for strict service handling

By default, strict mode is enabled. But you can pass strict=false
if you want context creation to continue (rather than throwing
IllegalArgumentException) even when a required service fails to
instantiate.
Context: add sys prop to override strictness

If you want context creation to be lax by default,
you can now set scijava.context.strict=false and
the fail-fast behavior will be disabled by default.
Context: add @see links to the main constructor

That constructor contains the most complete javadoc, which we want to
encourage people to read, even if they use a different convenience
constructor. This is DRYer than replicating all the documentation
for every single convenience constructor.
Context: split list-maker to a utility method

This change will make it easier for unit tests to call the Context
constructors that take a Collection instead of a varargs list.
ContextCreationTest: add tests for non-strict mode

These tests verify that context creation continues and is
successful even in spite of missing services.