implemented XBlockModel & XBlockUser

This commit introduces models.py, which has two classes:
	XBlockModel
	XBlockUser

XBlockModel is a general interface that allows runtimes to
represent any python model in a flexible manner by patching
attributes onto it.

XBlockUser is a slightly more structured interface, which
expects a number of fields from the runtime such as emails,
full_name, user_name, etc.

** This is related to Edx's attempt to allow xblocks to access user information through runtime services. 
https://github.com/edx/edx-platform/pull/4690