Non-generic IDatumConverter & IDatumConverterFactory

Add non-generic interfaces for IDatumConverter and IDatumConverterFactory.  This is likely a pre-req for removing reflection in some other issues (#69, #67, #66) and fixing the dynamic invocation in issue #133.

    public interface IDatumConverter
    {
        object ConvertDatum(Datum datum);
        Datum ConvertObject(object @object);
    }

    public interface IDatumConverter<T> : IDatumConverter
    {
        new T ConvertDatum(Datum datum);
        Datum ConvertObject(T @object);
    }

    public interface IDatumConverterFactory
    {
        bool TryGet(Type datumType, IDatumConverterFactory rootDatumConverterFactory, out IDatumConverter datumConverter);
        bool TryGet<T>(IDatumConverterFactory rootDatumConverterFactory, out IDatumConverter<T> datumConverter);
    }