[2.0] Fix loopback in PhantomJS, fix karma tests

- Move configuration of Karma unit-tests from `Gruntfile.js` to a
  standalone file (`test/karma.conf.js`).

- Add a new Grunt task `karma:unit-ci` to run Karma unit-tests in
  PhantomJS and produce karma-xunit.xml file that can be consumed
  by the CI server.

- Add `grunt karma:unit-ci` to the `test` script in `package.json`.

- Add `es5-shim` module to karma unit-tests in order to provide
  ES5-methods required by LoopBack.

- Fix `mixin(source)` in lib/loopback.js to work in PhantomJS.
  `Object.getOwnPropertyDescriptor()` provided by `es5-shim` does not
  work in the same way as in Node.

Requires strongloop/loopback-datasource-juggler#152

/to @ritch Please review.
/cc @rmg When this patch is landed, loopback is ready to run karma unit-tests on our Jenkins. `npm test` is already running karma via Grunt, is there anything else needed to enable karma tests on Jenkins?
Isn't this breaking?