relay: multiple updates

* use composition rather than inheritance - remove user class & replace with immutable nick class
* start making colour calculation depend on nick itself