XBlock and Asides common behaviors

@cpennington pls review

@cpennington The above line is breaking a test which doesn't define a field-data service. How should i handle?
```
    xblock/test/test_runtime.py line 576 in test_service
      runtime.render(tester, 'student_view')
    xblock/runtime.py line 743 in render
      updated_frag = self.wrap_xblock(block, view_name, frag, context)
    xblock/runtime.py line 790 in wrap_xblock
      extra_data = {'name': block.name} if block.name else {}
    xblock/fields.py line 440 in __get__
      field_data = xblock._field_data
    xblock/mixins.py line 229 in _field_data
      return self.runtime.service(self, 'field-data')
    xblock/runtime.py line 975 in service
      raise NoSuchServiceError("Service {!r} is not available.".format(service_name))
   NoSuchServiceError: Service 'field-data' is not available.
```