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 

(Can't seem to comment on the line above I actually want to comment on, so doing so here)
There's a magic number of 64 above that represents the cutoff where Array.Clear vs manual clearing is used.  Presumably that number was chosen based on some perf experiments.  I wonder if the changes that have been made here, and in particular the removal of the RefAsValueType<T> wrapper, impact that threshold at all.  If nothing else, consider putting it into a constant.