Adding foreach support on C# scripting

Adding foreach support. This pull request including:
* Compile time foreach statement expansion. It generates while statement using IEnumerator<T> to accomplish foreach semantics.
* IEnumerator<T> implementation for T[], List<T>, Dictionary<TKey, TValue>, and String.
* try-finally clause support.