Update haxe.web.Dispatch to match standard lib

(Will delete this once Haxe 3.1 is out, then we can just use the
one bundled in standard lib)
When in #debub, let errors reach the browser so they can be debugged properly
Change to use DetoxLayoutFactory instead of a single layout

(Otherwise you get weirdness when the layout is cached between requests)

It would be sweet to look into keeping one layout per session... should look into it!

Would make client side coding and server side easy to deal with...
Haxe 3.0.1 can't figure out array access when value is supposed to be dynamic

Use set instead.
Small fix for Haxe 3.0.1

Was working in 3.1.0, but for some reason this code failed on 3.0.1

Assign to tmp variable, works again.  Glad they fixed whatever glitch that was.
Backwards compatibility for Haxe 3.0.1
Fix for Haxe 3.0.1, again with the calling methods on an abstract
Part 1 of improving multipart request support

Includes:

- MultiValueMap for request parameters, so you can catch parameters with more than one value
- Update Sync helper file so it is less strict about type parameters
- Got rid of old upload handlers
- Began implementing the new plan.  Still needs testing, but it compiles.

The new plan:

- request has a public parseMultipart() method, similar to `neko.Web.parseMultipart`, except
  that it automatically populates the POST fields, and your callbacks only fire for file uploads
- you use middleware to process the parseMultipart(), and to populate `request.files`
- `request.files` is a MultiValueMap containing `FileUpload` objects
- `FileUpload` is an interface
    - that gives you some basics: getString(), getBytes(), saveToFile(). process() etc
    - is sufficiently abstracted and async friendly that it could work on nodeJS, Google app engine etc
    - does not have to repesent a file on the disk, could be held in RAM, or a cache engine etc
- For neko / php, we provide
    - a default middleware that saves all multipart files to a temporary folder
    - give you access to them using `request.files`
    - delete tmp upload files at the end of the request