feat(uiStateActive): directive to add/remove classes for active state

Adds a directive to switch a set of classes in a DRY fashion by interacting
with neighboring ui-sref directives.

The class to be used is an interpolated string, which is not $observed. There is
no default, as I do not wish to tie this module to a particular CSS model or
framework. A default may be configured in the future with a provider. As usual,
multiple classes may be used, as Attributes.$addClass/$removeClass will separate
classes on whitespace.

CAVEATS:

This is only capable of working as a parent of a ui-sref directive, or as a sibling
directive on the same element. In the future, there may be a mechanism around this,
but for the time being I can't think of what it would look like.

USAGE:

Sibling directive on same element as ui-sref:
<a ui-sref="foo.bar({baz: '123'})" ui-state-active="active" href>123</a>

--- OR ---

Ancestor directive of ui-sref:
<li class="item" ui-state-active="active">
  <a ui-sref="foo.bar({baz: '123'})" title="123" href>123</a>
</li>
chore(uiStateActive): refactor & add test coverage
docs(README)

Add "angular commit message format" instruction to develop section
chore(uiStateActive): remove unneeded code

paramKeys aren't needed when using `equalForKeys()` strategy
chore(uiSrefActive): rename uiStateActive to uiSrefActive

Renamed to reflect the association with the ui-sref directive.
fix(registerState): make registerState() use current version of transitionTo()

fix hash-overwriting issue on new page load / page reload
Merge pull request #635 from caitp/issue-19

feat(uiStateActive): directive to add/remove classes for active state
Merge pull request #612 from sourcegraph/hash

Preserve url fragment on page reload
chore(depends): bump min Angular version to 1.1.5
chore(depends): updating all dev dependencies

- Rewrite Karma config to comply with new semantics
- Trick JSHint into validating 'abstract' hash keys in ES-compliant way
- Fixes #585
fix(uiView): correctly detect $animator service
fix(uiSref): various click-related issues

- Always invoke digest loop
- Use $timeout to defer transition until other click events have processed
release 0.2.6
Returns false instead of null to avoid null.toString().
Merge pull request #650 from gaku/master

Returns false instead of null to avoid null.toString().
chore(README): polite reminder of guidelines
release 0.2.7
chore(grunt): adds grunt-ngdocs plugin

also integrates it into existing grunt configuration.
this is just the basic stuff, developer guide and tutorial
to come.
docs(ui.router.compat): adds docs for ui.router.compat module
docs(routerProvider): adds docs for routerProvider