Write up documentation on how to implement a new runtime, and formalize the abstract classes used by XBlock

[LMS-1520]
Handle uploaded files when wrapping Django requests.
First cut at an Acid block.
Compare the server-generated and client-generated handler URLs.
Refactor the package structure, so that static files are installable.
Fix some pylint errors to fix the build.
Merge pull request #130 from cpennington/runtime-docs

Write up documentation on how to implement a new runtime, and formalize the abstract classes used by XBlock
Merge pull request #131 from edx/ned/acid-xblock

Add an acid XBlock that tests its environment.
Use cookiecutter to template new XBlocks.
Merge pull request #136 from edx/ned/cookie-cutter

Use cookiecutter to template new XBlocks.
Add _demo suffix to all entry points included in XBlocks.
Merge pull request #137 from edx/brian/demo-entry-points

Add _demo suffix to all entry points included in XBlocks.
Miscellaneous cleanups.
Unauthenticated handlers
Rearrange thumbs so it will install properly.

With py_modules, we weren't able to install package_data, so make this
into a genuine Python package.
Thumbs moved, lint the new one.
Fix enough pylint violations to pass the build.
Merge pull request #134 from edx/ned/refactor-packages

Rearrange thumbs so it will install properly.
Change from decorator to handler_url argument.

Rather than decorate the handler as an unauthenticated handler, instead
indicate that when getting the URL to the handler.  This gives us the
ability to provide authentication eventually, and lets the Javascript
handler_url() function also produce these URLs properly.
Make handler_url and resources_url properly abstract