adding storage providers - cookie and null so far

Now that we're able to load and run switches, this PR makes it so we can store the results of those switches. Currently there are two options:

* `NullStorageProvider` which stores nothing, mostly used in development
* `CookieStorageProvider` which stores results in a cookie

As of this PR the `CookieStorageProvider.StoreState` uses the `StorageDuration` enumeration to determine the length of time to store a result as follows:

* `None` - removes the result from the response cookies
* `Short` - stores the result for the duration of the user's session
* `Medium` - stores the result for 24 hours
* `Long` - stores the result for 14 days
* `ForEver` - stores the result for 1 year