Generate the HTML title by using the `$breadcrumb` service

Related to #37
fix: organize state-level options in `ncyBreadcrumb` key instead of `data`

Originally, state-level options was defined in the `data` key which is the
key reserved for custom usages (according to UI-router documentation). It
causes problems because of data inheritance (#30). The ugly
`$$isStateDataProperty` function was checking if a property was in state's
data is its own.

Now, these options are defined in the `ncyBreadcrumb` key. They are no
longer inherited between states and `$$isStateDataProperty` is no longer
needed.

Closes #30
BREAKING CHANGE: state-level options has been moved under the custom key
`ncyBreadcrumb` in state's configuration.

To migrate the code follow the example below:
```
// Before
$stateProvider.state('A', {
  url: '/a',
  data: {
    ncyBreadcrumbLabel: 'State A'
  }
});
```

```
// After
$stateProvider.state('A', {
  url: '/a',
  ncyBreadcrumb: {
    label: 'State A'
  }
});
```
See API reference on wiki for more informations.
feat($breadcrumb): add the customization of the parent state with a function

The `ncyBreadcrumb.parent` property can be a string containing a state name
of a function returning a state name :
```
$stateProvider.state('B', {
  url:'/b',
  ncyBreadcrumb: {
    label: 'State B',
    parent: 'B'
  }
})
```
or
```
$stateProvider.state('B', {
  url:'/b',
  ncyBreadcrumb: {
    label: 'State B',
    parent: function() {
      return 'B';
    }
  }
})
```

The function can have a $scope argument : it will be called with the same
scope used by interpolation in labels:
```
$stateProvider.state('B', {
  url:'/b',
  ncyBreadcrumb: {
    label: 'State B',
    parent: function($scope) {
      return $scope.parentStateName;
    }
  }
})
```

Closes #32
feat($breadcrumb): Support url params when using `ncyBreadcrumb.parent` property

The state-specific option `ncyBreadcrumb.parent` supports now url params.
It allows specifying parent with the same syntax as the UI-router's
`ui-sref` either with a string value or with a function value :
```
ncyBreadcrumb: {
  parent: 'contact.detail({idContact: 42})'
}
```

The option prefixStateName have also the same syntax.

Closes #46
chore(sample): Add an other way to access to the `room.detail` state

The `room.detail` can be accessed via the `room` state and the
`booking.day` state by clicking on the room number in the list of
reservations.

It demonstrates the ability to reference a parent state with url params (#46).
test: Add test case for url params when using `ncyBreadcrumb.parent`

Related to #46
feat: Add a global option to include abtract states

The global option `includeAbstract` can be used to include
abstract states in the chain of states.

Those states are displayed in the breadcrumb with a
span (they can't be accessed).

Closes #35, #28
feat(ncyBreadcrumbLast): Add a new directive rendering the last step

This directive renders the last step of the breadcrumb (generally
the current state).

The directive is an attribute with an optional value. For example:
`<title ncy-breadcrumb-last></title>`

The value can be a short template (as ngBindTemplate) with the same
variables in scope as the ncyBreadcrumb directive:
- ncyBreadcrumbLabel
- ncyBreadcrumbLink
For example:
`<span ncy-breadcrumb-last="<a href='{{ncyBreadcrumbLink}}'>{{ncyBreadcrumbLabel}}</a>"></span>`

If no value is specified, the directive uses the default template `{{ncyBreadcrumbLabel}}`.

Closes #37
Merge branch 'v0.3.x'

Conflicts:
	sample/app.js
	sample/index.html