Serializing unsupported data types to ApplicationData.Current.RoamingSettings

RoamingSettings is a great way to roam configuration data between your machines, but sometimes you want to keep more complex data than a simple string. Here's how you can do it.