refactor: introduce IRepl, move IReplEngine to own file, add guards, remove redundant code, fix code formatting
make REPL injectable and overrideable like other services
refactor:
 - redundant code
 - line length
 - guard clauses
 - EOL at end of file
 - readonly fields
 - replace if with null coalesce
 - replace if with inline conditional
 - whitespace
Merge pull request #877 from adamralph/refactor-830

refactoring after #830
wip