Added functions for retrieving the actual namespace forms instead of just symbols

I think this is the feature we will need to make Leiningen faster, as discussed in https://github.com/technomancy/leiningen/pull/1402.

This change should not affect the behavior of any public functions, but it does add new ones.

The critical change is on line 31 of core.clj, where I replaced `(second form)` with `form`.  Everything else was mostly just adapting to that change and exposing the namespace forms to the world.