Add support for named external requires

This allows commonly used dependencies to be exposed as a named require, eliminating the need for repetitive, error prone and potentially lengthy relative pathing. Example syntax in the Grunt file looks like this.

```
exposed: {
	Clazz: './libs/Class.js'
}
```
which in turn enables requires like this
```
require('Clazz');
```
Add support for both task and target level expose options
Added support for file globbing in expose property

If expose contains a files array, member objects will be passed to
grunt.file.expandMapping() to support exposing patterns of files
as simplified names/paths. Each object in the files array must
provide the cwd and src properties, while dest is optional.

For example, the following config will expose all .js files for ```require```ing within the vendor directory, at any level, simply by their filename, minus the extension.

```
expose: {
	files: [
		{
			cwd: './vendor/',
			src: ['**/*.js']
		}
	]
}
```

Adding ```dest: 'lib/'``` to the object would enable ```require("lib/somename")```
Merge pull request #9 from bclinkinbeard/master

Named external requires - fixes #5