Platform.ReadLine: replaced readline in favour of haskeline

Rationale:
  - Neither readline nor haskeline are part of Haskell-Platform,
    but haskeline does not impose a dependency on libreadline.

Notes:
  - The default build does not depend on haskeline - haskeline support
    needs to be turned on explicitly via environment variable 'cli'.
  - Haskeline keeps history state in its monad transformer and also
    manages history itself. The 'addHistory' function is therefore removed.
  - The Interpreter.Interpret module had to be touched a io-lifed widely.
    There is no semantic change when using the generic cli option, only
    the haskeline option is affected.
    This MIGHT be unsafe and lead to race conditions showing up as line-
    or character interleaving (not critical).