Add ExtractToImmutable

This is an API which allows for a zero-copy creation of an ImmutableArray<T> value.  

This is an alternative approach to the PR #154 

I realize this is from before your change, but I'm curious why the index >= Count check exists.  Without this, an IndexOutOfRangeException will still be thrown in this case. Plus, it's not explicitly handling the index < 0 case, and relying there on the implicit IndexOutOfRangeException that'll be thrown.  Just seems inconsistent, and if the implicit IOORE is good enough for the lower bound, not sure why it's not good enough for the higher bound.