use exception handling for loadLib/unloadLib

- add handle !is null invariant to Library
- remove opCast and disable default constructor
rename loadFunc/loadVar to findFunc/findVar

- Adapt the docs to emphasize that a search is performed
  and null is returned on failure.