Change the value of geometry in settings from an unparsed string to a
struct containing the properly parsed geometry info. Since we depend on
X11 for geometry parsing this (unfortunately) introduces an X11
dependency on the settings module, this can only be resolved if we
implement our own parsing.
This rule was added in #343 when trying to decide what to do with
transient notifications. This seemed like a good idea at the time but it
ended up creating more confusion that necessary.
Relevant issues: #310, #508