Better handling of error in Fetcher

Fetcher.fetchFromApi() provides error handler for Backbone's
Model.fetch(), and it expects a response body as a 2nd argument.
However, on the client-seid, it is an XHR object.

This patch fixes it, and adds a response body to an Error object,
because it may be helpful when Controllers decide a navigation.
Added 'examples' and 'test' to .npmignore
Removed generated files and fixed .gitignore
Merge pull request #143 from koichik/git-npm-ignore

Small changes for .npmignore and .gitignore
Remove old comments from fetcher
Merge pull request #142 from koichik/fetch-error

Better handling of error in Fetcher
Use `rendr.entryPath` to set default view path

This makes it easy to change the directory structure of your Rendr app,
moving it to, say, `<project>/apps/main` instead of just `<project>`.
Add `04_entrypath` example, showing alt. app structure

This example demonstrates how to rearrange the app structure for more
module Express apps. By setting `rendr.entryPath`, you can place your
Rendr app in any directory.
Remove duplicate LICENSE files in examples
Adding checks for routes using regexes.

the routes still need to be prepared a bit due to express using a leading `/` and backbone
not using the leading slash.  So even with this, the routes file has some logic:

```javascript
//app/routes.js

//backbone style regex, no leading slash
var routes =
[
  ['', 'getHome', 'home#index'],
  [/^foo.*/, 'getFoo', 'foo#index'],
  [/^bar.*/, 'getBar', 'bar#index']
];

module.exports = function(match) {
  routes.forEach( function(el, i){
    pattern = el[0];
    if(el[0] instanceof RegExp) {
      if(this.isServer) {
        //add the leading / for express if the regex is looking at the start of the path
        pattern = new RegExp(routeArray[0].toString().slice(1,-1).replace(/^\^/, '^\\\/'));
      }
    }
    match(pattern, el[1], el[2]);
  });
};
```

This logic could be moved into the `shared/base/router.js` buildRoutes:captureRoutes method:

```javascript
//rendr/shared/base/router.js

  function captureRoutes() {
    var routeArray = _.toArray(arguments);

    if(routeArray[0] instanceof RegExp) {
      if(this.isServer) {
        //add the leading / for express if the regex is looking at the start of the path
        routeArray[0] = new RegExp(routeArray[0].toString().slice(1,-1).replace(/^\^/, '^\\\/'));
      }
    }
    routes.push(routeArray);
  }
```

but didn't want to suggest too much, plus this feels juuust a little weird. just wanted to
get regex routes to get though the flow.
Adding a test for regex routes

just verifies that the system will accept a regex route.
Made test helper for preparing client tests
    Prevent interceptions when the meta key or shift key is pressed.

    This allows users to command or shift click on a link and have it open in a new tab or window.
Merge pull request #149 from givingstage/command_click_links

Command click links
Moar tests for regexp-routes
Merge pull request #1 from airbnb/regexp-routes

Moar tests for regexp-routes
Merge pull request #147 from bigethan/regexp-routes

Adding checks for routes using regexes.
Fix JS exception in IE due to router inheritance

This should fix #121. In IE, there was a JS error thrown by the
`BaseRouter`'s constructor. It turns out it's just an issue with the way
the example app sets up prototypical inheritance -- IE doesn't support
setting `Router.prototype.__proto__ = BaseClientRouter.prototype`, so we
use `Object.create()` instead, which works in IE due to the polyfill
provided by `es5shim`/`es5sham`.
Merge pull request #152 from airbnb/fix-router-ie-error

Fix JS exception in IE due to router inheritance
Allow models to be fetched by other params than just the model's id attribute