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.
Update docs for FileStorage
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
local: add swapped operands support for LocalProxy
fix strings tests
Part of a further parse_parts refactoring for generating every parser step.
Finish cutting parse_parts out of parse_lines.
Missing assignments.
Remove 'headers' from parse_lines grammar.
Fix relying on order of unordered types

Modified version of #234

All changed tests have in common that they assert a specific ordering of
an unordered data structure (dict or set). The assertions have been made
more liberal with respect to the order of entries.

Command used for finding failures of this kind:
for i in `seq 100`; do echo PYTHONHASHSEED=$i;
PYTHONHASHSEED=$i $PYTHON run-tests.py || break; done
Merge pull request #193 from marienz/tweak-test-for-pypy

Stop relying on the message text of ZeroDivisionError in tests.
Fixed #271