added more error checking in udp packet parsing

Ignore-this: e1aeb65f0a5f0aa8678c817b2ada1280

darcs-hash:20130827131638-c21fe-8f3b57c3c01fb93c131f4632fad9e54cd4681bc4
made note on max chunks

Ignore-this: af6104817d18a896a1b18c0bf8175698

darcs-hash:20130827132254-c21fe-171169316f1f537ef9e29261d0dce213c3607a35
added new req/rep for getting a greeter's public key

Ignore-this: dba4982a30a7b58691d040b158145603

darcs-hash:20130828222855-c21fe-9f17c5df2e3b8082d1f52730bc15129cd5b7a828
now firegreet has it's own public/private key pair for encryption between firegreet and firestr

Ignore-this: 58d59d8c8f74654eddb12e5670c9a959

darcs-hash:20130828222945-c21fe-7bbab1953f291214c81453206b08a9f641d88cdd
added encryption to firegreet

Ignore-this: 68705259b4ae112e4745df013fe57b3

darcs-hash:20130828224944-c21fe-faf49928d5be89c14cdd17f41aa3eb892e7e812a
changed security session creation ui to fix timing bugs

Ignore-this: 65f05f85faa42ad1eeef9d24d2a4ef39

darcs-hash:20130829001152-c21fe-031d69426c54726547ec4b8cdb071038dfccf919
now all communication between firestr and firegreet are encrypted

Ignore-this: ed24b3e46e982ed5d0d22e9dd349f7ce

The first time you add a greeter, firestr sends a plaintext message to ask the greeter for it's public key. This public key is then stored with the greeter on the file system.

All register and find requests sent to the greeter from firestr are encrypted using public keys.

This way user id's and who knows who should not be known by anyone but the greeter. Of course
if the greeter is comprimised, then this information will also be.

currently the greeter logs everything, but this will change once any bugs are worked out.

darcs-hash:20130829144101-c21fe-5fd55a1e8a69f48dacfa0b56a27866e64e496168
removed adding contact using local ip as it was a security risk

Ignore-this: bc4f299be856c3fb0154e22c3c1c9249

By having only one way to add a contact, it simplifies the code and reduces the security risk that the plaintext add/reject/accept method used.

the contact list dialog has also been simplified

darcs-hash:20130829203137-c21fe-abeefb383427600cf356ce6d181b593503ef39b4
added state per user

Ignore-this: 7ab6079b5618a14d06b339660477488b

darcs-hash:20130829203432-c21fe-9c1158fdd8ef9964d68a129c26585ee69c53adab
fixed some threading and timing bugs in the security and user service

Ignore-this: 18a6b74911da5d2c9f2dfd35253719f

1. when you removed a contact, the security session still exists, so messages from that contact would arrive succesfully to the apps
2. different threads using botan caused some errors.

darcs-hash:20130830023532-c21fe-149dfb6812a2635eeed6bab5d77ce37457c93a38