User code & better uberjar support

PigPen now loads user code in the namespace in which it was originally defined. This means that you can now use functions defined in that namespace within code running remotely. It also supports using namespaces and aliases that were available when defining the function.

Also changed Pig & Hadoop to be provided dependencies so that they aren't included in the uberjar.