Reload project info as part of the 'compile' sequence

This means we redo it on project change, and don't
start an sbt process in parallel with the compile one.

A small side change in here is to call leftoverEvent
more consistently and needed to ignore TaskComplete
in there as a result.