Store profiles in JSON
Profiles (and preferences?) should probably be stored as JSON instead of the markup I threw together. It'll make it easier to maintain and edit. The only problem I see is that we're storing widget values and arbitrary types, which need to be parsed back in properly. This can probably be taken care of the same way I wrote it into the markup though.