First state of UI rewrite, reimplemenation of agent status displays

@abnanda1 @DamianEdwards @davidfowl @moozzyk 
There's a bit of a long story to this one, but the caller is actually the Angular API as a result of the digest loop that runs after the model is updated. In the reload scenario, the first call has both newValue and oldValue set to null and it is the second call where we will see an object in newValue that we want to bind.