Big cleanup in OpamTypes

the everywhere-opened module used to contain lots of various stuff. Now:
* it contains only types, so no duplication in a .mli is needed
* utility functions have been moved to OpamTypesBase
* Action resolution modules and functors have been moved to their own
  modules, with a much cleaner interface. The two instances (with OPAM and CUDF modules)
  are also a bit easier to distinguish and understand (OpamSolver converts between
  the two)