Expose some internals to allow callers registering new compiler components

This allows the caller to register new components (and to create them using
`ExpressionReplacer` and directly using the AST nodes). It can be used (e.g.) to
replace runtime types used by a type provider with alternative JS implementations
without modifying the type provider code.
Merge remote-tracking branch 'source/master'
Started to add support for exported classes. Will merge before I continue.
Merge branch 'master' of https://github.com/ZachBray/FunScript
Add custom components to the end.
Adding click to the example - behaves oddly
Adding click to the example - behaves oddly
More mappings for strings & simple async

Example includes the implementation of some F# async features.
Eventually, this could be moved into FunJS and automatically translated.
Improve event handling in the async sample
Remove the absolute paths in the Blackjack sample
Merge pull request #6 from forki/master

Just path correction
Adding test
Added IJSConservativeMapping to preserve dots in exported TypeScript classes. Preserved the dots using a nasty hack for now. Will clean up soon. Added tests for mutable static properties and implemented a fix to get them working. Unfortunately, the module constructors don't have reflected definitions so this is also a bit hacky. Changed DefineGlobal to allow the definition of anything. Added another method to the compiler DefineGlobalInitialization which defines something after the first block of definitions. This is useful for the static properties, so we don't call into something that hasn't been assigned yet. It might be useful for prototype methods on union types too. Updated the example to show more bits of TypeScript will update again to get stuff working soon.
Merge branch 'master' of https://github.com/ZachBray/FunScript

Conflicts:
	Examples/Blackjack/FunJS.Example/Program.fs
Adding basic async mappings and workaround for quoted records.
A basic implementation of Events and Observables. Trigger/Publish/Subscribe/Dispose/AddHandler/RemoveHandler are all working.

TODO: Appropriate expression replacers for code compatibility with .NET, implementation of Event module (map, filter etc), implementation of Reactive Extensions, threading support (web workers?).
Merge pull request #8 from endeavour/master

F# Events
Moved events.fs into Core folder. Added a wrapper for DOM Events.
Added mapping for incr, decr & String functions

String.length & String.charAt
Added Array.Create method