Added a lot of tests for SimpleConfig

Refactored the SImpleConfig class a lot to make sure the behavior is
always defined.
Do not use mutables as default values!

This blog article explains why (just an example, many other articles
discuss this ad nauseam):
http://pythonconquerstheuniverse.wordpress.com/2012/02/15/mutable-default-arguments/
Travis now excludes "gui"

Instead of selectively including valid packages.
Added more tests for edge cases.
System config should never be None
Added tests for the system config function.
Added more tests for user config parsing.
Forward-merging changes from master

To make sure tests pass or fail with the latest code.
Merge pull request #736 from chrisglass/more-tests-2

Add tests to the SimpleConfig object (resubmit)