Added the ability to namespace a file.

Namespaces should be declared at the top of the file for convention, although this is not enforced. Only 1 namespace can be declared per file.

This allows for both private and public variables.  defvar and defun are private, the new macros defun+ and defvar+
are public.  Clojure makes its public by default, but I felt it was more "JavaScripty" to have variables within a closure to be private unless explicitly declared public.

Possible additions (if this functionality is accepted and wanted) include the ability to import functions/variables from another namespace so that you don't have to use the dot notation.