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 

@stephentoub i think this is to match behavior in other types like `List<T>` and `StringBuilder`.  Both enforce that indexing can never go beyond Count / Length even if the underlying array is long enough