Simplify the Library implementation slightly:

* Remove _initialized flag and just test if self._lib is None. This removes an obnoxious error in the event you try to inspect ._lib before Library is initialized
* Removed the caching of attributes on self, and instead always do the lookup on Lib