Replace ClientDevice with UpstreamSession

I've created a new model UpstreamSession to replace ClientDevice.
It provides tools to generate and warm up sessions before testing.

UpstreamSession is intended to be subclassed by the performance test
suite to provide application-specific generation and warm up. There is a
branch of cloud city's own performance test suite using this, to
demonstrate the functionality.