refactoring to partially bring back "blessed composition"

main changes are:

- defnix is now meant to be imported with nixpkgs as `pkgs' to avoid
 manually listing random packages as function arguments throughout the
 whole library and instead let the library user (e.g. `ipsec-wrapper`
 import `defnix` one or more times as a whole unit without having
 to know all of the internals of it) -- imo this greatly simplifies
 the library interface, given that most likely we're going to be use
 defnix with one or more versions of nixpkgs and some third-party
 library like zalora-nix-lib. We still get to do local surgery where
 necessary by using overrideDerivation, etc.

- build-support stuff is moved to `toolchain` and uses deflib.callPackage

misc changes:
- a subset of nixpkgs/lib is imported as deflib
- added a basic test file
- some stub READMEs