Added type-safe object and array constructors

Updated object and array literal constructors to be type-safe by using
implicit conversions and the `Either` data type.
Modified some operator names
Removed excess operators from DSL

Replaced hard-to-remember operators (methods with symbolic names) with
words like "map" and "filter" that are common to functional programming
languages.
Updated unit tests

Updated unit tests to test DSL's map, filter, object constructor, and
array constructor.
Fixed mixed tabs/spaces in DSL.scala
Updated DSL with more convenient methods
Made DSL more consistent, added features
Fixed grammar in documentation
Added type signatures to all public methods in DSL
Updated DSL test suite
Updated DSL to be more consistent and use `Option`s
Made DSL methods more consistent

This fixes the bug where there is an ambiguity between regular
functions, partial functions, and functions returning option.
Slightly changed map func symbolic method name
Updated DSL method names for order of operations

Updated DSL to change operators that start with '|' to start with '%'
for higher precedence.
Changed name to morph
Added simple interface to parse files
Updated .gitignore

Removed *.swp file from .gitignore (this was done to accomodate vim's
swap files, but that should be a local setting).
Simplified function mapping in DSL

Unified mapping a function returning a regular `ValueNode` or a
function returning `Option[ValueNode]` using the already defined
implicit conversion.
Added conversions to plain data types in DSL

Added to[name] conversions for nodes.

Added Safely { ... } block that makes it easier to do computations
where to[name] conversions are used.
Fixed incongruent constructs in DSL

Fixed conversions to Number and to Boolean data types.