couple gcc/linux fixes.

This fixes two problems:

* gcc 4.7 uses noexcept(true) on std::exception's destructor in c++11 mode, so classes deriving from it need that as well.
* I hit an issue where a file referred to "share.h" but it was "Share.h"... and then I hit that or the reverse a lot.  So I moved everything to "share.h".