Abstract asset methods into own interface class

then impl the read ones as NotImplementedError placeholders on xml modulestore
PLAT-70

@cpennington @doctoryes 
This seems pretty fragile. It'll break if/when we move `common/lib/xmodule` into it's own repo, for instance.