Simplified Roster

Removed some throw declarations from methods, so some try/catch blocks
could be removed.

Use switch/case instead of if/else if.

Make members final when possible.

Add logger statements in case of error IQ result and remove superfluous
check of instanceof IQ.
Make roster push and presence packet filter static final

Also remove the check of IQ.Type.SET in processPacket(). This is now
done with help of a PacketFilter.
Add log statements to Roster
Fix unfiledEntries not updating

If an roster push with a roster entry without any group is processed,
then the entry is not updated, because unfiledEntries.contains(entry)
would return true, as the RosterEntry.equals() method only compares the
name.

We simply fix it by always removing the entry first and then adding it
again.

Thanks to Christian Schudt for pointing this out.

SMACK-559