Add ability to have a func return a compile string

Sometimes you want something fancier that a simple string for your make
invocations. This way you can define a function in your :common-compiles
list which can return a string or nil. The function is passed the
eproject-root. Any nils are removed from the final list passed back to
the compile history.