Really fix the weird uninstall problem

I've finally nailed down issue #348 (and #362). The issue was indeed caused by da0d7de9da7e634d19cdf1355c295ec274ad10df:
* This commit is implementing an useful optimization: in case the remove command is 'ocamlfind remove XXX' only, then OPAM don't create ~/.opam/<switch>/build/<pkg> anymore. Which means increased uninstall time.
* However, the uninstall command was still run in ~/.opam/<switch>/build/<pkg>. If that directory does not exists, the command was just dropped silently.
* OPAM automatically removes ~/.opam/<switch>/lib/<pkg>, so when the package was not using C bindings (with stub files in ~/.opam/<switch>/lib/stublibs) the bug was hidden
* Using OPAM with OPAMKEEPBUILDIR=1 (which means that the build dir wasn't removed during upgrades) hides the bug

So now I've fixed the bug:
* when we do an exec in a given dir, OPAM fails if the dir doesn't exist
* on uninstall, if the build dir is not there run the uninstall command at the OPAM root

This should fix #362