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)