Issue #11: Refactored Tokenizer

Changes in Tokenizer.java:
• Refactored the original parse loop into a more readable state machine
• Extracted atomic parse blocks into named methods. 
• Extracted if-expressions into named methods.
• Added explanatory variables and made item names in general more expressive.