Began to refactor Operator class.
Began to refactor parsing instructions into its own method.
Began to implement 'perform_commands' method on Car.
Merge branch 'master' into charles-and-ivy

Conflicts:
	lib/car.rb
	spec/car_spec.rb
Added support for moving forwards and backwards to perform_commands.
Added support for turning left and right to perform_commands.
Refactored perform_commands.
Added checking for invalid commands before running the list of commands in perform_commands.
Rearranged tests slightly and added test for ensuring that the taxi cannot go outside the CBD boundary.
Removed unused code.
Added handling invalid instruction strings and lowercase instruction strings.
Refactored parse_instruction slightly.
Changed Operator methods to throw exceptions rather than returning nil when invalid data is encountered and added the ability to parse a single-line command.
Added checking for invalid input when parsing a single-line command.
Implemented running a line of user input and formatting the result for display to the user.
Added reporting a nice message if the user attempts to make a taxi drive outside the grid or gives invalid input.
Added basic command-line UI support (run bundle exec lib/driver.rb to use it).
Switched to using readline library for reading user input, which enables things like pressing the up and down arrows to go through previous input. Also fixed a typo in the help information displayed when the user gives an invalid command.
Fixed issue where the program would crash if the starting position was outside the grid.
Changed the behaviour when the series of commands would cause the taxi to move outside the grid - now the taxi will not move at all, rather than moving to the boundary and then stopping.