modified queue to support blocking using conditional variables and signalling

Ignore-this: 976f0e0482cd423ee7c9ee4c995dc797

darcs-hash:20130329225808-c21fe-33ccf0afe22e4271fc1ded9e149937d2eeff8d0f
rolling back conditional variable change that didn't work

Ignore-this: 3afd7b8db247ff1a7feb0e6ccfa6a60c

darcs-hash:20130330025131-c21fe-82056a6d2eb4f1468493c19f556fc310ce9986b5
util/queue now supports blocking pop

Ignore-this: d70743d00972acd953d4a456bb4c584f

A friend suggested I add a blocking pop using a conditional variable to eliminate
some busy waits.

This was a good idea, so I did that.

No noticable performance change, though there is ever slightest
reduction in cpu usage. There are still busy waits in the code.
Some place I can do something similar to remove them. Other places will require
busy waits and polling, for instance, ui thread. At least for now.

darcs-hash:20130330024403-c21fe-87d76dbed7344c434047934ed019c07c2602da03
removed stray cerr

Ignore-this: 144cf375c3937c5f5d8a75ca8f2a4e19

darcs-hash:20130330024639-c21fe-69f7e53d45797943678c114d363c87ab045a7dc9
fixed merged conflict with previous bad blocking code

Ignore-this: 3ce3480cfec182c981176616aef3232a

darcs-hash:20130330025836-c21fe-ef27f13752cbad28c808dab983de5eaa5663070f
max: removing stray files from darcs-to-git
some ui tweaks to the contact list dialog

Ignore-this: 33cc9ce5a0ef3d973e8a4602a9f945d5

I put the "create invite" button next to the add button on the main dialog.
I think this simplifies the ui a little.

darcs-hash:20130331044423-c21fe-6b36a37abe2a6ffbcb8bdd573d47761b77e35329
fixed but where initially the app menu is enabled

Ignore-this: bb3775d9e2c78480ae5cc68d3313ab93

darcs-hash:20130331044543-c21fe-161432f039eaaf478e9690f759b5c1a9eae8ee9b
small performance improvement in byte encoding

Ignore-this: 55f9b2b74dfe91799c09ae7ab6352465

darcs-hash:20130331050431-c21fe-8141e4e93147b6e8defe6f8275148351c3336455
updated about

Ignore-this: aa704915ced2f62bd28be6b23e6e3a1

darcs-hash:20130331050826-c21fe-9e35e13a2d495366a3cd53d8f04a31db3c14d614
creating a session now switches to new tab

Ignore-this: 45698866e17b049c716eab9daf625cf2

When a user creates a new session, they will be switched to the new tab automatically.
However, if another user initiates the session, they will not switch.

darcs-hash:20130331053100-c21fe-51198c57338b82d552cb939391eeb7db1aeb229d
fixed bug in the "quit session" message

Ignore-this: 8f9a5688e3ad32c4acd982429dcfe7ed

Fixed a bug where the "quit session" message would appear in all sessions the user is
in, instead of just the one they quit

darcs-hash:20130331053216-c21fe-43b26c4c0c9bb3cce224f3da4ee6024e6a269a75
made the connection handshaking more efficient

Ignore-this: 12bf9c118c11a2db21ccadf51a0f9cd3

There was a bug where too many connection requests were sent when the users are on a local
network and a greeter is used.

Also the ping was inefficient anyway and there were too many back and forths...

darcs-hash:20130401033207-c21fe-8e05fe03c2e0ee2dc2bd60bdfd62afc6eb23bad7
added ability for apps to interact with each other in a session

Ignore-this: 3b54d8e39546042212df45de253504df

You can now send messages locally in a session to other apps. There is a way
to iterate through all apps in a session and send them messages. There is also
a new send_local function to send a message to all apps in a session.

Now we have a way to communicate apps across the network and between each other.
This should be really powerful if apps are written to work together.

darcs-hash:20130401202524-c21fe-df6d0092c24fe942024146a1e43a766997eaae52
Merge branch 'master' into moc_parse
the alert tab now turns red when there is a new alert

Ignore-this: 4b365654b24238194e3329305ff80aab

darcs-hash:20130409183450-c21fe-567d0452ddce94bd8c4d7c33e0d67609ce2f5b5d
Merge branch 'master' into moc_parse

Conflicts:
	src/gui/mainwin.hpp