Fix tons of (all?) memory leaks using boost::shared_ptr

** Add a new dependency: Boost **

You need to install Boost in order to compile now.
I think it was necessary: raw pointers all over the place are dangerous.
Now it's pure [RAII][1]. I removed all the deletes!

[1]: http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization