Added support for StringPool.
Directly used ExpandoObject instead of Object in JSON parser when converting to dynamic (should be a bit faster).
Added new ExpandoObject implementation.
  Instead of being dictionary based, it is using a sorted array with a union of values. It is using the string pool ID to reference strings, and use the position in the sorted array for the next call.
  The idea is that it makes the read very fast (no string hash code to get) if it works with the same key and same type of objects, however creation is slower, there are ways to mitigate this though.
  Values are stored with a C union-like pattern, so most common primitives don't need boxing / unboxing. GC had some issues with the layout, so a bit more work is needed there.
  Keys are part of the string pooled but not released yet. More work is needed to make sure we are not leaking string IDs.
  For some reasons, it does not work well with PSSetIndex / PSGetIndex, so it has been commented for the moment (probably related to the fact that most index access have different keys even for the same call site).