Refactor direction module

in preparation for more fine grain direction classes
Added direction tests for NESW classes
Added NESW direction classes

* added direction base class and direction classes
* refactor tests
Move direction classes to direction folder
Added robot tests to use direction classes

* added turnLeft, turnRight, move tests in preparation for switching
from constants to use direction classes
Massive refactoring to use direction classes
Refactor robot controller

* move all the validation logic into model
* refactor tests
Update readme to include implementation details

* added sample input file