Extras refactor

Here is my proposal on a restructure.  It will allow for easier testing.  I did introduce a test that did discover a few undefined items, so this can clean stuff up pretty quick.

I hate how github doesn't show the file renames instead of a diff.
Let's try switching this back to 2.3 now that we have Qt 5.3 on Travis CI.