Unit spec timeout

This branch adds a 100ms timeout on all unit tests. It also includes some refactoring of Devtools::Project which can probably be decoupled from this branch and merged into master separately. However, I wanted to get this into a PR early for comments on the unit spec timeout.