Observable, imperative collections, regex and string functions

Hi Zach,

Several commits have accumulated in this pull request, so I'm listing here all the new features:

* Observable module (no unit tests, but working in my TodoMVC project)
  As quotations cannot contain object expressions I just reimplemented the Observable module from the FSharp.Core libray using actual types. I put it in the FunScript.Core.Events file but please move it somewhere else if you think that's better.

* Imperative Collections (with unit tests)
  ResizeArray and Dictionary. I tried to make them as close as possible to Javascript to improve performance.

* Regex (with unit tests)
  Most of the functions here are just also inline JS emissions, but it's more convenient to use Regex the .NET way for compatibility and to avoid the conversion System.String <> TypeScript.String. BTW, I'm not forcing the user to set the ECMAScript compliant option to avoid verbosity, but this may cause different behaviour if the same code is executed in .NET and JS. Please tell me your opinion on this.

* String convenience functions (with unit tests)
  LastIndexOf, Trim, EndsWith and Format (very simple, just replacing the {n} placeholders without extra formatting). Console.WriteLine is very simple as well, just a wrapper for console.log. As it's not an actual string function, I put it in the OtherMappings file. console.log doesn't work in the unit tests, but I checked in actual code and the correct JS is generated.

The only "native" function I had to modify was ExpressionReplacer.buildCall to make String.Format work (check the note I left there). All the unit test are still working, so apparently I didn't break anything ;) Also, if you have time, please check the TODOs scattered over the place and give me your opinion on the issues.

Thanks and keep on going!
Alfonso