Better validation of project links

We should properly report errors in project links, not fail on
incomplete ones.

Closes #379