Client|UI: Added a basic implementation of NotificationWidget

This will act as a common notification area.

Also added changeRef() to aid in changing the value of a reference
counted pointer, and safe type casting for Widget-based classes.
Client: Cleanup
Client|UI: Added a notification widget to ClientWindow
Documentation|Readme: Updated features, acknowledgments, OS X intro
libdeng2|Widget: Querying the number of children in a widget
Fixed|libdeng2|Animation: Adjusting the target of an animation

Now the method does what it says: change the target without touching
any other parameters. Fixes a problem with ScalarRule animations.
libgui|PersistentCanvasWindow: Allow derived classes to form variable names
Client|GuiWidget: Querying the parent of a widget

Notably there are both QObject::parent() and de::Widget::parent() in
this class.
Client|NotificationWidget: Showing/hiding children, animation

The notification area now provides facilities for showing or hiding
specific widgets in it. The area is automatically animated in and out
of the view depending on whether notifications are visible.
Client|ClientWindow: FPS counter as a notification

This commit brings back the FPS counter as a notification widget owned
by ClientWindow. When "Show FPS" is selected in the DE menu, the
window sets Config.window.main.showFps to True and the FPS counter
widget is shown in the main window's notification area.

The counter notification is dismissed by selecting "Hide FPS" in the
DE menu.