* extract cd and pwd commands
* move decision making on if to handle linux command to command handler
* extract core contract for command handler and class for terminal context (mutable part of project)
* extract app class which is responsible for running application in command line
* update tests following above changes