New module hierarchy `Foreign.JavaScript` implements a redesigned JavaScript foreign function interface (FFI).

* `Foreign.JavaScript.Server` encapsulates all functionality that has to do with the HTTP server. The other modules only depend on the `Comm` type, which represents a bidirectional communication channel. This makes it easy to change the server type or use an entirely different communication channel.

* `ffi.js` exports mutable JS objects via stable pointers. The Haskell side uses `Foreign.RemotePtr` to wrap them into something that supports garbage collection. Together with `Foreign.JavaScript.Marshal`, we can now use functions on arbitrary JS objects, not just DOM elements. (Sometimes we have to be careful with garbage collection, though, cross-runtime cycles are bad.)
`JavaScript.Foreign.EventLoop` now performs frequent garbage collection when the REBUG flag is set.

Local `ghci` script sets REBUG flag.
`ffi.js` now removes the `stablePtr` field from a JavaScript object as well.
Module `Foreign.RemotePtr` now exports `unprotectedGetCoupon`.
Remove debug message from `Foreign.JavaScript.EventLoop`.
`js/haskell.css` replaces `js/driver.css`
`Foreign.JavaScript.Server` now includes configuration option for setting the IP address of the server to listen on.
`Foreign.JavaScript` now offers a root pointer for controlling garbage collection.
Fix: `Foreign.JavaScript` now exports configuration options.
Flag `SAMPLES` is now set when running from the `samples` folder.
`Foreign.JavaScript` now allows lists of objects `[JSObject]` to be converted into Haskell.
Convert `Graphics.UI.Threepenny.Core` to use the new `Foreign.JavaScript` backend.

The `Buttons.hs` example works!
`Foreign.JavaScript.DOM` now has a note that indicates that the approach to garbage collection here is not correct.
`lib.js` now features working `Haskell.map` function.
`Foreign.JavaScript.exportHandler` now accepts event handlers that expect a list of arguments.

`Graphics.UI.Threepenny.Internal.Core` now uses custom `Haskell.bind` function from `lib.js` to register events. This takes care of supplying appropriate event data. We can't serialize the whole `event` argument to JSON, because it contains a lot of superfluous information and is cyclic.
Fix `Graphics.UI.Threepenny.Internal.Core.delete` to also detach the element from the document tree.
Examples now use `js` prefix for configuration options, i.e. `jsStatic` etc.
`Graphics.UI.Threepenny` exports JQuery helper functions again.
New function `mkElementNamespace` allows the creation of elements within a particular namespace. `Graphics.UI.Threepenny.SVG` API now makes use of that.
`Foreign.JavaScript` now uses software transactional memory (STM) internally.