Create many-to-many table

Adds a List of OptionSets to Options. OptionSets already have a List of
Options, which forces EntityFramework to insert a Many-to-Many table
called OptionSetOptions.

Updates the Populate script to add all the restaurant options to the
OptionSet 1.
Session.Id => Session.UUID

Back and forth again. Entity Framework has issues with searching by Guid,
as it treats it as a string.

See http://www.danderson.me/posts/limitations-of-entity-framework-support-with-mysql-6-4-3-connectornet/
(search "no matching elements are found").
Fix infinite object recursion

Stops us recursing through the "OptionSet <-> Option" loop by stopping
after we encounter an object we've already serialized.