First state of UI rewrite, reimplemenation of agent status displays

@abnanda1 @DamianEdwards @davidfowl @moozzyk 
I am kind of curious how often we expect `tryGetAgent` to return null - is it normal or more kind of an exception? I am asking because the code is full of these null checks and I think it can be very error prone especially a few layers above.