Introduce swipable tab layout

Dummy implementation only contains empty `ExpandableListView`s so far.
Turn `RosterActivity` into `ContactsFragment`

This preliminary implementation is broken and ugly. This commit saves as a
respawn point.
Hide empty view when online

So far the empty view was always shown.

This commit sets the respective view as the empty view of the expandable list
which makes it magically disappear when the list gets populated.
Add fragments at defined positions

So far fragments were just appended to the end of their list.

This commit addst them at a defined position that may later be used to retrieve
them again.
Turn `FormTeamDialog` into `DialogFragment`

Create an instance on menu item selected and pass yourself as the target so you
may be called back.
Minor refactorings

 * Renaming of callbacks
 * Removal of unused code
Check handling of intents

Only handle intents different from null. This prevents the fragment from
crashing on screen rotation, but we to seem to miss all subsequent intents.
Move XMPP service back into activity

When transforming `RosterActivity` into `ContactsFragment`, it kept managing the
XMPP service.

Since both fragments will use it, this commit moves handling of the service back
into the overarching activity. The fragments are currently able to retrieve the
raw service via a getter from the activity.

Holding the service enables the activity to directly handle incoming intents
without having to refer them to a fragment and to handle the options menu by
itself.
Only enable connect menu if service has been bound
Debug broken fragment reference

Add log output to investigate which objects are referenced.
Remove unused tab code
Fix getting of fragment reference

To get a reference of a fragment, we need to retrieve it from the
`FragmentManager`. To do so, we have to extract the tag it was added with via
reflection from the `FragmentPagerAdapter`.
Remove debug messages

This commit removes log messages previously used to debug how references to
fragments may be retrieved from the roster adapter.
Add `RosterAdapter::getFragment()`

So far the `RosterAdapter` used reflection to leak the tag under which a
fragment had been added to the `FragmentManager`, which was then used to
retrieve it from the same.

This commit changes the approach by returning the fragment from a call to
`super.instantiateItem()`.
Create new fragments in `RosterAdapter::getItem()`

So far the `RosterAdapter` was initialized with a list of fragments, created
everytime the `TabbedRosterActivity` was started. `getItem(pos)` returned the
item at the given position in that list.

This commit makes `getItem()` return a new instance of a fragment, where its
type is defined by the requested position. This is more in line with the usual
behaviour and use of `getItem()` and prevents the `TabbedRosterActivity` to have
to create fragments that may never be used (since existing ones are restored).
Send XMPPServiceNotification to activity

Due to refactoring the XMPP service notification was targeted at the
`ContactsFragment` (the former `RosterActivity`).

This commit redirects the notification to the new `TabbedRosterActivity` and
restores the 'Click to bring to front' functionality.
Rename `TabbedRosterActivity` to `RosterActivity`

Since the refactoring of the original `RosterActivity` into `ContactsFragment`
comes to a close, the new activity may take its place.
Fix race condition `onTabChanged`

Only set the new page in the `ViewPager` if it exists. It may just have been
destroyed by an orientation change.
Merge pull request #65 from 0x64746b/tabbed_roster

Tabbed roster
Merge branch 'devel' into chat_message_list