Only add CPPFLAGS and LDFLAGS paths that exist on the drive.

I am proposing this patch as it is a short term fix for a larger problem that we should address, as this breaks hashdist show script < >, when the dependencies haven't been built.

The problem is that a projects can't clearly express the type of dependency it has with other packages. By this is I mean we are unable to describe if the dependency is a C++/C/Fortran linking dependency, an executable dependency, or a run time import dependency. 

In a perfect world we would describe our dependencies as being either a link dependency, an include dependency,  an executable dependency, or a run dependency.
```code
dependencies:
   link: [ 'curl' ]
   include: []
   executable: ['cmake']
   run: []
```
Here is what each dependency would influence.
* link: Would set LDFLAGS and CPPFLAGS and require the project to be built.
* include: Would only set CPPFLAGS, and require the project to be built. This will also allow use to support  header only C++ libraries
* executable: Would only require the project to be built
* run: Would only require the project to be built