Functions

A Typescript decorator for declaring an NgModule
which contains UI-Router states and/or uses UI-Router directives and providers.

The decorator adds the UIRouterLibraryModule NgModule as an import.
The `UIRouterLibraryModule has the UI-Router directives and providers.

The decorator also analyzes the states: property.
When it finds a state with a routed component:, it adds the component
to the module's declarations and entryComponents.

Note: adding the component to entryComponents instructs the Module Compiler that those
components should be compiled.
Otherwise, they would not be automatically discovered as "reachable" by the compiler.

Further, the states found in the states: property are added to Dependency Injection
using a specific token.
This will automatically register them with the StateRegistry when the application bootstraps.