Extract Field machinery out of XBlock into 2 mixins

[PLAT-207]
Fix up some pylint complainery
Merge pull request #251 from cpennington/extract-field-machinery

Extract Field machinery out of XBlock into 2 mixins
Extract XBlock handler machinery into separate baseclass

[PLAT-212]
Merge pull request #252 from cpennington/extract-handler-machinery

Extract XBlock handler machinery into a separate base class.
Add validate method to xblock core.
Merge pull request #250 from edx/christina/xblock-validation

Introduce validation method and class in XBlock API
Consistently use empty instead of is_empty
Merge pull request #254 from edx/christina/validation-empty-cleanup

Consistently use empty instead of is_empty
Back out PR 240 until edx-platform test failures can be resolved
Merge pull request #255 from edx/christina/revert-240

Back out PR 240 until edx-platform test failures can be resolved
Move xblock-family mixins into a separate python module
Extract Runtime-services machinery from XBlock into a mixin
Make XBlocks and Fields access FieldData via a runtime service.

Maintains the ability to pass a FieldData in XBlock constructors for
backwards compatability.

[PLAT-206]
Deprecate passing field_data through the runtime constructor
Merge pull request #253 from cpennington/field-data-as-service

Access FieldData as a Runtime service
Make tests pass without deprecation warnings
Merge pull request #257 from cpennington/remove-warnings

Make tests pass without deprecation warnings
Fix all pylint errors except TODOs
Make exceptions moved to xblock.exceptions still available in xblock.core