Pyfilesystem support+refactor

This adds file system support, and is a refactor of the XBlock codebase as per a longer discussion with Cale, etc. Specifically, 

* We add a directory to XBlocks for reference implementations of standard services, blocks, and fields. In the future, runtimes may provide their own implementations instead (if we decide to do this for fields, this will be a major backwards-compatibility breaking change). 
* We add a process for prototyping services. 
* We add a prototype service+field type which adds pyfilesystem support. We explicitly mark this as a prototype implementation. We'll build this out, and see if there are issues. If there are, we will switch to an interface along the lines of one suggested by @ormsbee 
* We restructure the code such that only some fields are JSONifable, which does not make sense for things like blobs. This will break backwards-compatibility if we decide to do this, but for now, just shows deprecation warnings. 
I have no idea what 'Any' means. Can I stick really anything into it? If so, I would stick a filesystem object into it, together with maybe a couple of mongodb objects. I'm not sure how your runtime will serialize that for me, but if I can, I'll be thrilled. 

Perhaps it means it's any JSON object. If so, it'd be nice if the name was something which implied it was any JSON object, as opposed to any object. Even so, I'd be curious about the use-case.