remove alias this handle in Library

- no implicit conversion to make Library more typesafe
- use Library in the new loadLib/unloadLib API
- deprecate void* API Runtime.loadLibrary/Runtime.unloadLibray
- add Library.opCast(T:bool) to test for initialized lib
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.