change XBlockUser to 2-tier attributes

@cpennington @nedbat @pmitros changes to XBlockuser per discussion on https://groups.google.com/forum/#!topic/edx-code/agwShOD05mQ
It would be good to add a test: `assert_is_instance(current_user.opt_attrs, collections.Mapping)`