Update sessions encryption to encrypt any data

Sessions' internal _encrypt() and _decrypt() mechanism were able
to encrypt/decrypt dicts only. Now they can encrypt/decrypt any
pickable data.
Implement single Kaylee instance on client side

This implements Issue #8. Kaylee communicates with other instances
via localStorage. The algorithm works as follows:

Time
 |    Instance 1: PING -> No one answers in 1.5 seconds -> START
 |
 |    Instance 2: PING -> Instance 1: PONG -> STOP
\|/
 *