Parse `do` blocks

Updated the parser to accept a "do block" in the appropriate places.
Functionally, this adds anonymous function as the final argument to the
function.

WARNING: At present the interperter does not close over blocks. This
common behavior can cause problems if not implimented carefully. However,
this is now a known bug.
Unparenthesized Arguments

Like in Ruby, there are certian cercumstances where argument list do not
need parentheses.  The parser now understands these argument lists. There
is still some uncertianty about exactly where such constructs are
appropriate.
Updated cabal file to reflect newer dependencies
Cabal Source File fix

The cabal file was modified so that internal modules will build source
file linkages in the documentation.
Array `push` method

Supply the built in method `push` for Arrays. The destructive version is
in base.sap but does not work because of Github issue #27.