Finished refactor of ui object.

We now don't have the GenericUiObject and UiObservable anymore.

But two different interfaces, ActivatingUiObject and ReceivingUiObject, and the controllers take such in, instead of the above.