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
Added support for json-encoded strings for Dict field