Added error handling and a bit of abstraction:
- Now report errors when:
  1. The pointer goes off the 'tape'
	2. When a user tries to perform under/overflow of a cell
  3. A block hasn't been closed before EOF
- Added constructors and selectors for all data structures and tried to hide as
  much dirt inside the tokenize/parse functions that the other functions
	shouldn't know about.