Improved Singletons - Implements #64

After the discussion today I implemented Derek's idea with thread safety, and reimplemented RemoteElem on top of that.  This should probably get pulled *before* the ReferenceElem business and I'll refactor that to use this.

Any issues?  

Roy, what are your thoughts / issues regarding multiple LibMeshInit objects?

-Ben