Improved rand_string generation.
feat(Api): Method-based routing

* Use method-based routing
* Add all official (and some unofficial) HTTP status codes
* Convert several occurences of self.assertThat to self.assertEquals.
* Minor cleanup/refactoring

BREAKING CHANGE: Handlers must now have callable attributes that act as
"responders" to the various HTTP methods they support. Responders must
be named on_<method.lower()>, e.g. 'on_get' and 'on_post'.
test(Api): On HTTP 405, Allow header is set correctly
refactor(Request): Rename get_header and get_param to try_*

In preparation for adding variants of these methods that raise
exceptions, rename these to make it obvious that they return default
values if the specified header or param is not found in the request.
refactor(Request): Reduce McCabe score for __init__
refactor(Api): Hide helper methods and improve lookup performance
Merge branch 'master' of git://github.com/racker/falcon into pythonic_rand_chars

Conflicts:
	test/helpers.py
refactor(helpers): Change rand_string to be strictly a list comprehension.

Previously, rand_string depended on an iterator class RandChars to generate the
random characters. The rationale for this change is two fold.

1. Reduces code - less code, easier to maintain
2. Increases performance - fewer function calls
feat(Request): Get param as int
feat(Request): get_header and get_param variants that raise HTTPError
refactor: Rename "handler" to "resource"

RFC 2616 talks about URI's corresponding to "resources", not
"handlers". This nomenclature is also reflected in the REST
architectural style.
Merge pull request #3 from cabrera/pythonic_rand_chars

refactor(rand_string): Change rand_string to be strictly a list comprehension
refactor(Api): Remove ctx

Developers can pass shared DB connections, etc. to resource classes
when instantiating them. Since Falcon does not reinstantiate a new
class for each request, passing an extra context parameter into the
responders is not necessary.
refactor: Rename Api to API per PEP 8
chore: Remove diff file
refactor: Move HTTPError into its own module
feat(API): Raise HTTPError as a nice way to return error responses

Works with HTTPError or any child classes
fix: Preliminary Python 3 support
feat(Response): Stream large objects with minimal memory usage

Responders can now assign an iterable generator or IO stream to
resp.stream, and the expected length of the stream to resp.stream_len.
Do not set resp.body when using streams.
doc: Add usage examples