Custom HighLevel DataTypes as intermediary.

The parser now parses the the source into a custom datatypes as defined
in `DataType.scala`.

The DataTypes are highlevel representatives of the data types present in
a lisp viz.
    - Boolean
    - Number/Decimal
    - Name

Like the value, expressions are defined as well. Expressions, depending
on the concotion they occur can be.
    - Combinator
    - Expresssion with values
    - Symbol