Improve json_handler decorator

It will now sanely respond with a 405 error if the method is not POST or
a 400 error if the input is invalid. A wrapped function can now indicate
by raising a certain exception that a status code other than 200 or 500
should be returned.
Merge pull request #211 from edx/gprice/improve-json-handler

Improve json_handler decorator
Relax open_local_resource rules.

An XBlock developer couldn't figure out why his static files weren't
serving.  At the very least, dots in the filename should be ok.
Merge pull request #217 from edx/ned/relax-resource-url-rules

Relax open_local_resource rules.
Add ability for runtime to store arbitrary options/metadata
Merge pull request #223 from edx/christina/deprecated

Add deprecated attribute to Field