Implemented "compiles" method for service providers.

See proposal #1916 from last year.

Decided to target `master` for this, will re-submit if you'd like it against `4.1`, just let me know.

Would also love feedback on the implementation. Cheers.

Unsure how the tests will go on other systems as well, e.g., Windows. Will try it when I get a chance.

---

Recursively compile all the packages files.

```php
public function compiles()
{
    return array('**/*');
}
```

Compile all files in the given directory.

```php
public function compiles()
{
    return array('Foo');

    // Or...

   return array('Foo/*');
}
```

Compile individual files.

```php
public function compiles()
{
    return array('Foo.php');
}
```

A bit of a mixture, compile individual files and recursively compile all files in a directory.

```php
public function compiles()
{
    return array('Foo.php', 'Foo/**/*');
}
```

All paths are relative to the service provider. It will also skip service providers that are themselves being called from `bootstrap/compiled.php`.

Service providers are stripped from the path so they are not compiled. This is to prevent breakages from packages using `$this->package()` in their `boot` method as it would bugger up all the paths.