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).