Small cleanup

Break out the catgories in their own function, in preparation
of getting them from somewhere else.
Break out category page as separate object

Introduce a GsShellCategory object, and move most of the
category-related code from GsShellOverview there. At the
same time, stop using a signal in GsShellCategory to communicate
page changes - instead add API in GsShell to do it.
Some trivial cleanups

Set all notebook properties in the ui file, there is no need
to do this manually in the code.