Adds a file system field

This adds a file system field type. Relies on a file system service, so this is useless outside of the context of a runtime. There is a matching branch in xblock-sdk which adds this service, and includes tests (which also test my last patch to XBlock). 
I just spent waaay too much time on this, but I think I do want most (all?) of the Field machinery around this. In particular, ModelMetaclass is important, since it sets names. I need names for the xblock-sdk PR to work (once finished), and indeed, almost anything declarative will want names. 

If we ever decide we want this as a settings field, Studio will need to support it as a field (upload a tarball? UX for navigating a directory tree+managing files?)

@cpennington Could you describe the machinery around Fields? I know I do not understand all (most?) of it. Especially useful would be pointers to specific machinery which I do *not* want.