Add support for expando objects

I made two small changes:
- Added support for expando objects (which implement IDictionary<string, object> but not IDictionary)
- Switched nunit.framework to pull from nuget (otherwise, you have to have installed the specific version of nunit, which is unlikely).

I wasn't able to figure out an easy way to write a unit test for the new generic `IDictionary` support, as .NET 3.5 doesn't have expando objects, and hence the only easily available implementation of `IDictionary<string,object>` is the `Dictionary<string, object>` that you're already using in your tests. But take a look at the code and see if it makes sense to you.