Stop relying on the message text of ZeroDivisionError in tests.

The test for broken_repr relied on the message text of
ZeroDivisionError, which is different on pypy (just "integer
division", not "integer division or modulo"). This causes a test
failure. Fix this by explicitly raising an exception with a message we
provide.
Adding Blackberry platform detection
Update docs for FileStorage
Fix error when creating a Response with status "foo bar"

Say your app does `return Response("baz", status="foo bar").

In wrappers.py, when the status property is set, if it can't be parsed
to an int (line 753), the status code is set to 0. However, in
serving.py lines 115, 116, we try to parse it again to an int which
fails. (again)

This fixes it by changing the status code to 0 as before and then the
status to "0 %s" % status. (-> "0 foo bar")
This can then be parsed properly in serving.py. (though admittedly, the
question is open to know if it should continue at all if Response() is
called with such a status in the first place...)

Signed-off-by: Timothée Boucher <timothee@gmail.com>
Fix error when creating a Response with e.g. "404"

If you call Response() with a status of "404" as a string
(`Response('foo', status="404")`) without the reason as part of the
string, the setting of the message `msg` will fail because
`status.split(None, 1)` will have only one value and can't be unpacked
to code and msg.

In wrappers.py, the status can be parsed to an int (line 753),
so status is set to (string) "404" and status_code is set to (int) 404.

RFC 2616 allows for an empty reason message to be sent. Without this fix,
you can't actually sent an empty message and you'll get an error if
you're trying to build a Response object based on the response from
a third-party server that could send an empty reason message.
(though probably rare, it happened to me, which is how I came across the
problem)

Signed-off-by: Timothée Boucher <timothee@gmail.com>
Fix for issue #239
Added '+' to always_safe
Added the example url from the test to the testsuite.
Fix handling of URL fragments.

Encode and decode URL fragments in iri_to_uri() and uri_to_iri().
Test anchor encoding/decoding in test_iri_support.
fixed #232
Renamed LighttpdCGIRootFix to simply CGIRootFix

  - It is easier to spell. Seriously.
  - The problem is not limited to Lighttpd (See mitsuhiko/flask#680)
  - I added a parameter to specify a custom app root. This is the change
    i am a bit unsure about.
Factor out tuple production.
MultiPartParser.cls receives parsed forms/files lazily.
yield_file/yield_form now overkill.
Fix doc
fix enough code we get to import the actual testsuite from the runner
have the test module finder raise the original ImportError
use io.BytesIO instead of cStringIO in formparser
introduce werkzeug._compat starting with urlparse
xrange->range
various six based import/syntax fixes