client: in desktop sessions, use user's session device settings for xrandr

Previously, xrandr settings were applied from /etc/puavo/device.json,
which did not work for thinclients, because the device in which desktop
sessions are run is (TADAA!) desktopserver, not thinclient.

This commit changes the xrandr configuration of desktop sessions to use
the device entry from the user's session object instead.
bootserver: let curl ask for the password when it needs it
bootserver: use rootca.pem to verify the peer
bootserver: rewrite puavo-bootserver-create-testclient with Ruby
bootserver: undefine virtual testclient domain on erroneous exit
bootserver: add --hostname option to set testclient hostname
bootserver: wrap long lines
bootserver: add --hosttype option to set testclient hosttype
bootserver: add short description to puavo-bootserver-create-testclient
bootserver: add option --tag to add device tags to testclients
bootserver: fix the default testclient name
ruby-puavobs: new Ruby library for common Bootserver operations
ruby-puavobs: install only for ruby1.9.1
ruby-puavobs: fix module functions to make ask_school() work properly
bootserver: make puavo-bootserver-create-testclient use puavobs.rb
ruby-puavobs: add function for creating libvirt test clients
bootserver: create testclients with PuavoBS.virsh_define_testclient()
ruby-puavobs: return HTTP status code when register_device fails, nil otherwise
bootserver: refactor error handling and reporting during testclient creation
ruby-puavobs: add function for asking admin username and password