Fix NoneType attribute error in mainframe.py

From what I can tell a callback from QT was being hit before the frame
value on the room was populated.  This caused the method to try and
invoke the scroll method on a NoneType object, which of course fails.

This fixes the issue by using the frame object of the parent in the
method, which is likely the correct object as this only occurs during
the creation of a frame representing a chat room.
Check if user_list is defined before trying to operate on it

Hitting the callback before the room info has been fully populated.
Check for DBUS Notifications service presence

Instead of checking for the presence of particular environment
variables, set by Desktop Environments, we should check if there is
any service on DBus that listens to org.freedesktop.Notifications.

This is important for people who use different services that provide
notification features like Dunst[1].

See [2] to check a more detailed list.

1: https://github.com/knopwob/dunst
2: https://wiki.archlinux.org/index.php/Desktop_Notifications
Merge pull request #77 from badosu/change-notifications-support

Check for DBUS Notifications service presence
Merge pull request #73 from stieg/master

Fix a couple of small errors
Fixing gnomekeyring dependency for arch. Fixes #71
Updating package version on Arch
Changing arch dependency
Updating version on arch
Small update
Merge branch 'master' of https://github.com/mariano/snakefire