On Linux, use dlopen to load libcrypto

The plan here is to remove the "NEEDED libcrypto.so.1.0.0" dependency.
However, it won't make any difference until the Ssl module is removed
too.
On Linux, use dlopen to load libssl

This means that we no longer have a NEEDED dependency on libcrypto or
libssl. We try for lib*.1.0.0 and then lib*.10.0.0 (for Fedora).

Note: this also removes the build dependency on ocaml-ssl.
Fixed handling of <executable-in-*> bindings outside of <requires>

These allow a program to depend on another of its own commands. e.g. the
"test" command might want to make its own "run" command available to the
tests.

Reported by Tim Cuthbertson.
Merge executable self-binding fix
Only switch to GLib mainloop when GTK plugin is started

This makes it possible to run the same main binary on systems without
GLib.
JSON select now reports whether there are any stale feeds

Note: you need to request an API version >= 2.7 to enable this.

Requested by Bastian Eicher.
Requirements.requirements -> Requirements.t
Cleaned up Qdom API
Cleaned up Feed interface
More interface cleanups
Renamed Helpers to Default_ui
Cleaned up Support interfaces
Cleaned up Solver interface
Moved -use-ocamlfind to myocamlbuild.ml

Makes it easier to run ocamlbuild manually.
Added interface for Env module
Tidied up solver code
Cleaned up Solver code

- Split build_problem out into a separate function.
- Use a Map rather than a Hashtable for the cache. Makes it easy to get
  a simpler read-only version, once building is complete. Also, saves
  having to sort the results.
More Solver tidying

Moved some of the build_problem logic into separate top-level functions.