Implementing open-pdf support.

Presently the spec only tests for correct handling of errors. Do not really have idea what to test in case of success. The problem is: if I stub out the exec function there is nothing to test, otherwise the system will launch Preview (which I assume is *not* what we want). 

Other issues with specs: should  the PreviewAppPdfOpener spec be run only on systems that support that program? What's the idiomatic way of solving this problem? A check in the spec itself?