Minor pokes and message to Nick
Got rid of redundant function definitions

- `repoPkg` and `virtualPkg` are called nowhere else except
  in the definition of `package`, so I moved their definitions
  directly to `package` itself.
- Due to Haskell's type system, there should never be any
  ambiguity as to which `package` is needed at any given time.
Wrote general info on `-M` option

- What do you think @nc6 ?
  Especially about the `On Building Packages` section. Is that inline with
  how you'd like `-M` to behave?