Added Data.Types.{Injective, Isomorphic}

The type classes Injective and Iso represent type injectivity and
isomorphism, respectively. System.{FilePath, Directory}.Generic will be
based on types which are isomorphic to String instead of a hard
dependence on Text.
Extended System.{FilePath, Directory}.Generic
Made Helper.String.(++) generic over String-types.
Made everything monad- and string-generic.

Removed the *T (putStrLnT, getLineT,..) from System.REPL. Instead,
functions which deal with strings are now generic over isomorphism and
functions which deal with IO have a MonadIO constraint.