Feature/extend tests

Changes Made:
* Included vfsStream within the require-dev block for mocking the filesystem in some tests
* Additions to ProjectSpec to include extend in code coverage
* Updated Project extend fn to check that closure is callable, and throw InvalidArgumentExtension otherwise
* Use call_user_func to invoke closure