Improve Builder

- Improve error reporting when specifying a non-existant file via `phake --file invalid`
- Improve testability and re-usability by optionally injecting Application into Builder (DI)
- Foundation for future PRs to support loading (merging) multiple Phakefiles into the same Application environment
- Foundation for future PRs to support loading additional Phakefiles into sub-groups (slightly related to #16)

Also fixes #11, phake can now be easily used as a library in external projects like this:

```php
$builder = new phake\Builder();
$builder->load_runfile('Phakefile.php');

$builder->get_application()->invoke('demo');
```

Depends on #26, so ignore first commit in changelog.