Added a 'finally' macro that can handle executing code regardless of a
function's exception events.
Updated the GUTIL_DISABLE_COPY macro to use C++11's "= delete" syntax.
Tweaked the exception class a little, and built the tests to make sure
everything still works
The GUtil application catches shared pointers to exceptions too, in case
you're throwing pointers around.

I needed this because I was passing exceptions between threads, so I had
to clone them dynamically and pass them as pointers.