set user and server in XMPPService on connect

also unset both when disconnect
Introduce custom layout for contact list children

So far the contact list used purely given layouts.

This commit introduces a custom layout.
Use custom layout with default adapter

The current implementation overrode two methods in the
`SimpleExpandableListAdapter` that then created and filled the custom layout.

This approach just feeds a custom layout into the default mechanism of the
adapter without adjusting its behaviour.
Revert "Use custom layout with default adapter"

This method has the disadvantage that all types in the dataset need to be of the
same type.

This reverts commit 9496086ba49454fd3d5b88159c8525e0121ced1b.
Extend `BaseExpandableListAdapter`

So far the Adapter filling the contact list was a `SimpleExpandableListAdapter`
which had two of its methods overriden.

This commit introduces a new custom adapter that extends
`BaseExpandableListAdapter` and uses two completely custom data structures to
represent its values.

NOTE: At this point, the data type representing a contact list child as well as
the corresponding layout are non-functional dummies.
Augment contact list child layout

This commit reintroduces the (unparsed) presence of a contact to the contact
list and sets a static dummy image that will in the future indicate the
contact's availability.
Parse presence information

So far, the contact list only displayed a contact's Jabber ID and the
uninterpreted presence information.

This commit introduces the presentation of a contact's alias (iff set). In
addition, only contacts that are online are being shown (not configurable,
yet). The status message will display the mode and an optional status message
(iff set).
Select status graphic depending on mode

So far the displayed status image was a static dummy.

This commit implements displaying of dynamic dummy images, depending on the mode
of the respective contact.
Improve text display in contact list

This commit adjusts padding and font size on contact list children while
removing ineffective alignment attributes from the layout.
Fix incorrect cast due to custom layout

So far the layout returned when getting a child view from the contact list was a
`TwoLineListItem`. Since switching to a custom layout, it is a `RelativeLayout`.

This commit adjusts a cast in the `onChildClick` handler accordingly.
Get contact directly from adapter

So far the `onChildClick` handler of the contact list inflated a child layout
and retrieved a view in order to get to the name of the child that had been
selected.

This commit makes use of the new custom adapter and shortcuts above procedure by
directly asking the adapter for the name of the child at the given position.
Merge pull request #173 from 0x64746b/custom_contactlist_child_layout

Custom adapter for contact list
Add title to contact list child context menu

This commit sets the title for the context menu generated upon selection of a
contact list child.
Set context menu title for contact list groups

This commit adds a header for the context menu spawned by long-clicking a
contact list group.
Add JID to `ContactlistChild`

So far the `ContactlistChild` only contained the (potentially abbreviated) name
of the contact.

This commit adds the complete JID so the `Chat` and the context menu in the
contact list may use it.
Fix disabled connect button

So far the decision whether the connect button would be enabled or disabled was
made only when the options menu in the roster was refreshed. This led to a
disabled connect button until the next manual refresh in case that the XMPP
service wasn't available yet at the time the menu was constructed.

This commit automatically refreshes the options menu (and thereby enables the
`connect` button) when the binding to the XMPP service is complete. This avoids
that the user has to do so manually until the button becomes available.
Hide `connect` button when not functional

So far the `connect` button was disabled as long as the XMPP service was not
available.

Since disabled buttons cannot be visually distinguished from active
buttons in ICS, this commit hides the button until its functionality becomes
available instead of disabling it.
Merge pull request #174 from 0x64746b/context_menu_titles

Context menu titles
Merge pull request #175 from 0x64746b/fix_disabled_connect

Fix disabled connect
remove superfluous disconnect thread on exit

stopService() already disconnects.
This caused the notification icon to reappear after exit.