added an abstraction object

added an abstraction parser

had to change my parsers from being just a define to
being functions b/c otherwise i would be making fragile
declarations (recursive definitions that aren't defined
when the specific define is occurring)
created some additional functions for lang

refactored variable parser to produce an object instead
of a string

refactored tests to handle new variable parser output
(as well as being more general)

added a simple test for abstraction