Add logging to project cracking facility

Also add more tests, and wrapping of the invalidprojectfileexception so
that only one exception type need be caught (the new API type).
Yes, just pushed