adding scheduler
added pubsub state stanzas and scheduled events
added pubsubjobs test
control-c fixes
Updated the XEP-0030 plugin to work with stanza objects instead of manipulating XML directly.

Four new events have been added:
  disco_info - A disco#info result has been received
  disco_info_request - A disco#info request has been received
  disco_items - A disco#items result has been received
  disco_items_request - A disco#items request has been received

For disco_info_request and disco_items_request two default handlers are registered. These handlers will only run if they are the only handler for these two events so that multiple responses are not returned and cause errors.

In your own handlers for these two events, you can call the default handlers to preserve the static node behaviour as so:
  self.plugin['xep_0030'].handle_disco_info(iq, True)

The forwarded=True will disable the check for other registered handlers.

Agents can now dynamically respond to disco requests by using these events.
(cherry picked from commit 0fc3381492a8bd75e6a9858539a972334881d8ff)
Added unit tests for the new XEP-0030 stanza objects. All pass.
(cherry picked from commit e1b814f27bf160f20bb30c315ca30769d217482d)
Added 'resource-constraint' to the list of error conditions.
Touched up the style of creating an Iq stanza.
Added missing 'internal-server-error' condition to error stanza interface.
Scheduler waits too longer, and pubsubstate registration was backwards
Added implementation and tests for XEP-0085 - Chat State Notifications.

Chat states may be set using:

msg['chat_state'].active()
msg['chat_state'].composing()
msg['chat_state'].gone()
msg['chat_state'].inactive()
msg['chat_state'].paused()

Checking a chat state can be done with either:

msg['chat_state'].getState()
msg['chat_state'].name

When a message with a chat state is receieved, the following events
may occur:

chatstate_active
chatstate_composing
chatstate_gone
chatstate_inactive
chatstate_paused

where the event data is the message stanza. Note that currently these
events are also triggered for messages sent by SleekXMPP, not just those
received.
Merge branch 'xep_0085' into develop
Make sure that the node is alway set in disco responses.
included jobs plugin
Added additional parameter to xep_0030's getInfo and getItems methods.

By using dfrom, a server component may send disco requests using any of its JIDS.
Make sure that the id parameter used in xmpp.makeIq is converted to a string.

Otherwise, SleekXMPP will barf on trying to serialize an integer when it expects text.
if binding and session are advertised in the same go, do session first
hack fix for session before bind
Merge branch 'develop' of github.com:fritzy/SleekXMPP into develop
Merge branch 'develop' of git://github.com/fritzy/SleekXMPP into develop