adding new directive 'require_glob', adding tests for 'glob' and 'tree' directives

This pull request adds a new 'require_glob' directive, that allows files files to be required based on a glob path.  This feature is being added to allow mincer, via connect-assets, to include sub-modules resources dynamically.

if you have:
```
'public/js/script.js'
'packages/package1/public/js/script.js'
'packages/package2/public/js/script.js'
'packages/package3/public/js/script.js'
```
you can now include all the script.js files under the packages directory via 
`//= require_glob('../../packages/**/public/js/script.js')` in `public/js/script.js` without knowing the packages sub-directory names in advance, or having to edit the main `public/js/script.js` file when you add addition packages.
No need to have `files` variable:

``` javascript
glob.sync(pattern, { cwd: root }).forEach(function (pathname) {
  self.context.requireAsset(pathname);
});