Add getCompatibleInputs test

Added a unit test for the ConvertService#getCompatibleInputs method.
ConvertService: use LinkedHashSet

When collecting input candidates, use a LinkedHashSet instead of a
HashSet. This will preserve the ordering of the candidates.
Converter: add type parameters

Added generic parameters for input and output types of the Covnerter
class. The return values for getInput and getOutput type methods have
been updated appropriately.