Add more boilerplate to AbstractConverter

The AbstractConverter class was leaving a lot of methods unimplemented.
Typically, most of these can be chained together.

The AbstractConverter now implements all but one convert and canConvert
signature.
ConvertServiceTest: remove unnecessary methods

Removed unnecessary implementations for dummy classes, as these methods
are now taken care of in the abstract layer.
Create NullConverter

Adds a new Converter type to handle null source or destination types.

Without this converter, the null logic was managed in a mix between
AbstractConverter and DefaultConverter - which means that all converters
had some null logic in them (potentially wrong for that given converter)
and could not run before DefaultConverter, without copying its null
logic.
ConvertServiceTest: add null tests

Ensure the null converter is behaving as intended.
Refactor Converter layers

Refactors AbstractConverter and DefaultConverter to take into account
the new NullConverter and the migration of boilerplate to
AbstractConverter.

Key points:
* Control flow at the abstract layer attempts to preserve the Type if
  given, as this contains information that can be lost in a Class.
* Removed several delegating method implementations from DefaultConverter
Deprecate (Class, ...) conversion methods

We would like to move away from these signatures as the process of
conversion implies there is an actual source Object to convert from,
which makes these signatures confusing. They should be unnecessary, and
thus removed in SJC 3.0.

This allows us to focus the functionality of the NullConverter, such
that its canConvert signatures always return true for a null Object, and
false for anything else.

This requires a temporary stop-gap of restoring some null class support
in the DefaultConverter, but only in deprecated methods.
ConvertServiceTest: Add primitive test

Added a test for converting between primitive types.
Add ConverterTest

Add a test class for individual converters. Currently only the
NullConverter is tested, as testing the DefaultConverter would
effectively be replicating all of the ConvertService test.
Merge pull request #125 from scijava/convert-refining

Adds more default implementations to the abstract Converter layer, simplifying the Converter implementation process. Adds a NullConverter to encapsulate null translation logic.