Extend navigationStateService with the ability to define state access based on a function.
State definition should allow providing a "canAccess" function that will be evaluated once then the user logs in. The notificationStateService should assume that the function will return either boolean or a promise resolving to a boolean value (rejecting the promise should mean an error has occurred when evaluating the function).
NavigationStateService should inject dependencies for the "canAccess" functions.
Make the the navigationStateService work in an asynchronous way (expose initialize method)
The trickiest part of this ticket will be making the service asynchronous.