Client: Raise the reconnect timeout by 200ms
Update qtwebsockets dependency
Initial support server handle

- We now support random user handles, based on the name generator we
  already had from the previous version of chan42
- New config option random-hero-handles holds a path to a list of names
- New class NameGenerator reads names from files provides then as a QSet
- NameGenerator supports to types of files 1) single names per line or
  2) two lists per file that need to be combined - currently there is no
  room setting to use 1)
- Added example super hero name list in names.txt
- Updated the example settings with the new option
- issue#18
Client: Add support for server side handles
Add forgetten changes

- Two little fixes that should have went in the previous
  2 commits
Client: Fix broken roster nickname

- Thre previous commits broke the roster nickname
New rules .gitignore hidden files
Turn ping messages into a protocol extension

- With this commit ping is no longer part of the core protocol
  this reverts my previous bad decision and restores the old
  ground rules for messages and underscore attributes
- ping/pong are now sent to all clients
- the server itself will respond to each client's
  ping
Client: Update ping after protocol changes

- Change the message semantics after the protocol changed
- Since ping/pong is now a broadcast message, I've added some measures
  to minimize the amount of ping messages going around:
  1. The client only responds to PING once every T=15s
  2. The client does not send new ping messages if a message
     has arrived in the last T=15s period
Make private client_id namespaces optional

- Previously we added the ability to separate the client_id namespace
  for each client - this was meant as a privacy feature that protects
  user identities - but in some cases this is not desirable.
- Added new Chan42room property **privateClientIds** (false by default)
  to enable or disable this behaviour
- Added a new option private-ids to the settings file
Remove the hero name generator from the server

- Has it turns out there is no point in doing name generation
  every time we start the server, or the room - so I am removing
  the hero name generator, you can always pre-generate a list of
  names into a file
- Removed the generator type from the NameGenerator class
- The option random-hero-handles no longer exists, we no have
  client-random-handles
- Added a helper python script to generate the super hero names
Client: Expose the send function in chan42.js
Client: Only notify of unsupported messages once

- Every time the client sees an unsupported payload it would
  notify the user, but this incurrs the risk of spamming users
  - we now only warn once per connection
Client: Make chatroom bookmarkable

- Server URLs can be passed in using the query argument
  chan42url=...
- If the query parameter is present the client will
  auto connect
Client: Fix broken input field

- The last commit broke down the text input because
  the new call to connect neglected to setup the input
  field handler and turn on the UI
- Move text input handler away from connection handler
- Move UI connection code away from button click handler
  into new method
Client: Make fonts slightly smaller
Fix chan42 to build on windows

- Added console flag to CONFIG
- Renamed .pro file to match repo folder
  name
Don't insert _from_handle if it is not available

- The server was inserting the _from_handle attribute
  even when none was available
Support room history

- Rooms can now store a history of past messages, up to a
  configurable limit.
- The *history* array of messages is sent as part of the initial
  update event
- In this implementation the server stores all messages except
  singular (ping or pong) messages - WITHOUT the private server
  attributes
- Chan42Room has a new property historySize that sets the maximum
  amount of messages in history
- A new integer setting *history* can be used to define the history
  size (default is 0 i.e. disabled)
- Changed the message processing code to make the private id case more
  clear
Client: Initial history support

- chan42.js now handles the **history** attribute in
  the update event
- If available server-side timestamps are used to
  ignore some of the history messages
- chan42.js now has a new event on_history, used to
  pass a list of messages to the client
- Currently the client ignores messages that don't hold a
  **msg** attribute