more work on lenses

rename stanza classes
add traversable for payload
change sid lens to point to Maybe Text
export pluginsL
add lenses for instant messages
add remaining lenses for roster types
fix some documentation mistakes
add timeout parameter to sendIQ'
remove IQResponseTimeout from IQResponse

IQResponseTimeout does not model an XMPP type but is instead an implementation specific signal that a user-set timeout has occured. Removing it keeps our representation closer to the defined protocol.

add IQSendError to keep the result of sendIQ' clear
add Annotations to received stanzas

Annotations allow plugins to attach information to processed stanzas, for example to signal that the stanza was received encrypted.