Lexical units added

* Lexical support added to the model. Enables to get information about position of a particular element in the source text (character number). This helps with refactoring (search & replace).
* Lexical unit object wraps raw string occurrence so it can be easily found.
diff --git a/demo.py b/demo.py
index aea75a2..0128199 100644
--- a/demo.py
+++ b/demo.py
@@ -14,7 +14,7 @@
 
 test3 = """package tutorial;
 option java_outer_classname = "PushNotifications";
-option optimize_for = "SPEED";
+option optimize_for = SPEED;
 
   message Person {
       required string name = 1;