Parse desktop file section names more like the Desktop Entry specification
We don't really have a test for .desktop file parsing. This branch adds one, and applies David's commit from !13 (closed) to fix a logic error that meant we accepted characters we didn't mean to.
This also supersedes !16 (closed), although we should discuss whether the implementation from !16 (closed) is better.
Closes #208 (closed)