feat(Grunt): setup of basic grunt watch to concat src to dist dir

A basic Gruntfile has been added to concat the files in `src` and
output to the distribution file: `dist/counterfeit.js`

The src dir includes an AngularJS module definition for `counterfeit`
as well as a AngularJS factory definition for the `counterfeit.Pledge`
factory.
feat(bower): add angular and angular-mocks as dev dependencies

A `bower.json` file has been added listing `angular` and `angular-mocks`
as dev dependencies.

Additionally a `bowerrc` file has been added to specify the target
directory for libraries added via bower.
chore(git): add gitignore file

Basic gitignore file for a node project.
feat(grunt): add uglify grunt task

An uglify grunt task has been added for generating a minified version of
counterfeit. This task has been added as a dependent task of the `watch`
task which means it will run when a watched file event occurs.
chore(karma): setup test runner

  * The test runner for this project is `Karma`.
  * The test framework is `Mocha`
  * The assertion library is `Chai`.
  * Test spies, stubs and mocks are provided by `Sinon`.
feat(counterfeit): module definition

The counterfeit module has been declared and Grunt has been setup to
watch changes to this file.
feat(star wars): add test fixtures for intergration tests.

The fixtures for testing `counterfeit` promises have been added.
These fixtures consist of a module called `starWars`, that includes the
following classes:

* DeflectorShield
* DeathStar

The `DeflectorShield` service exposes one public method called `reboot`.
This asynchronous operation returns a promise.

The `DeathStar` factory exposes a public method called
`rebootDeflectorShield`. This operation delegates to
`DeflectorShield#reboot` and interfaces with the promise that is
returned.
feat(counterfeit): add api for creating promises and stubs

A factory called `counterfeit` has been added. This factory facilitates
the testing of methods that use asynchronous promises, by providing an
api to generate fake promises and stub functions that return a promise.

An integration test has been added for the `DeathStar` test fixture.
Within this test the `DeflectorShield` class is decorated so that the
`reboot` method is a `CounterfeitStub`. This stub is configured to
return a `CounterfeitPromise`, which can be conveniently resolved within
the test.

Behind the scenes `CounterfeitPromise` are built using the AngularJs
`$q` service.
feat(promise): add support for rejecting a promise

`CounterfeitPromises` can now be rejected as per a typical promise.
feat(promise): add support for promise notifications

`CounterfeitPromises` can now be updated with notifications as per a
typical promise.
chore(distribution): add files for distribution

The concatenated and minified versions of counterfeit have been added
for distribution.
chore(README): add readme

A readme markdown file has been added detailing instructions for
installation and providing an example usage of `counterfeit`.
rebase into e377df8