Implemented packages as actual objects and moved around code.

This allows for a couple small changes. Since a name can now be
associated with a package, symbols can now be prefixed by the
package name when they are printed.

I moved around the class definitions to the top of the file to avoid
any compiler warnings. I plan on eventually moving them to a seperate
file altogether once the interpreter gets large enough.
Made some adjustments to the package system.

Now it is possible to create multiple packages. The ^ reader will now
always intern in the the interpreter's CL pakcage. The are some
problems with typing in a symbol from another package, as it is caught
by the implementation CL. I plan on getting around this problem by
starting the reader for Clint.

Next I am going to reorganize the code and add tests. Then I am going
to finish off the package system and start working on the reader.