Replace JSHint `predef` with `globals`

It looks like `predef` was deprecated in favor of `globals` some time ago.
Only copy production environment config when using grunt dist
Error and loading default templates
Fixes URL routing

The way the static middleware works, to serve a file but also let
index.html catch everything, the urlRoot option must be used in
conjunction with the directory option.

Previously, the introduction of faking the testem.js file broke
location history routing, because all routes were caught by the
testem fake file. This patch serves the fake file for the URL, but
also preserves the index.html catch all.
Merge pull request #404 from astonishdesign/feature/fix_testemjs

Fixes URL routing
Merge pull request #403 from stefanpenner/default-templates

Error and loading default templates
Merge pull request #383 from opsb/fix_dist_config

Only copy production environment config when using grunt dist
Soothe JSHint which cries about "Mixed spaces and tabs."

```
$ grunt jshint
Running "jshint:app" (jshint) task
>> 9 files lint free.

Running "jshint:tooling" (jshint) task
>> 29 files lint free.

Running "jshint:tests" (jshint) task
Linting tests/testem.js ...ERROR
[L9:C3] W099: Mixed spaces and tabs.
 *     <script src="/testem.js"></script>

Done, without errors.
```
Merge pull request #406 from pangratz/soothe_jshint

Soothe JSHint which cries about "Mixed spaces and tabs."
Removes static reference to testem.js; Moves testem.js to public
Removes space between lines
Merge pull request #407 from astonishdesign/feature/fix_testemjs

Removes static reference to testem.js; Moves testem.js to public
Removed custom load-grunt-config package
Merge pull request #409 from MajorBreakfast/master

Removed custom load-grunt-config package
[#417] Returns 404 for un-handled resources

To use, add ignoredFileExtensions key to static():

```JS
app.use(static({ file: 'tmp/result/index.html', ignoredFileExtensions: /\.\w{1,5}$/ }));
```

Middleware is processed sequentially, so this should be the last call
to catch non-existent asset files. All other paths continue back to
index.html to be handled by the Ember router.

  - Adds another option, ignoredFileExtensions the static middleware
    function, which allows you to specify a regex to capture resource
    paths that should return a 404.
  - Adds a check in static() for ignoredFileExtensions key that tests
    the regex against the request path for a matching file ending.
    If matched, then it sends a 404 error and does not serve the
    index.html file.

Passes an error string to next when trapping 404s

Traps 404s for resources in dist mode as well

Refactors 404 trap to an ignored file extensions property on the index.html catchall

Refactors ignoredFileExtensions regex
Halts the middleware chain after handling 404 resources

Signed-off-by: FilmKnurd <andrew@astonishdesign.com>
Merge pull request #418 from astonishdesign/feature/404resources

[#417] Returns 404 for un-handled resources
Fix watch task failing on Too Many Open Files
Merge pull request #421 from seriousben/FEATURE-Fix-too-many-open-files

Fix watch task failing on Too Many Open Files
Allow clearing the registry.

This is useful for testing custom lookups in the resolver itself. I
would much prefer to keep this the same everywhere and it currently
seems that the canonical `loader.js` is here in EAK.

Also, moved the definition of `requirejs._eak_seen` to be outside of the
`requirejs` function. I am not sure why we would want to reset it
everytime that we call require.