Rename ClientApplication attribute

`avatar` reflects the server-side class name and is also more verbose than
`persp`.
Build a client interface factory

This factory provides new instances of the view and controller interface
classes exposed to the client. This is necessary, so that user code can define
own views and controllers and create a custom factory for them.
Adapt stub example

The API changes are reflected. Also it demonstrates a simple login now.
Update todo list according to recent changes