xblock fields persist w/o breaking by scope

Letting xblocks handle scope rather than separating fields into
different attrs. Although, split still shunts content fields to a
different collection than setting and children fields.

The big difference is that content fields will always be a dict and not
sometimes just a string and there's no special casing of 'data' attr.

The other mind change is no more 'metadata' dict.
Clarify function name

and fix some comments ref'g old names
Clarify comments re behavior
Move load_from_json to the test file only

It's a reasonable demo of in memory xblock creation, but doesn't fit
the xblock pattern. Moving temporarily to keep the dag persistence test.
Add field iterator which includes namespaced fields

And fix get_explicitly_set to use it and to get the json not native
field values.
Better explain behavior and todo's
better equality testing primarily for unit tests
Generalize inheritance repr and fn across kvs's and dbmodels
use dbmodel w/ kvs instead of dictionary for model_data
Use xblock default function to get inherited value.
Favor DbModel over DictModel
Move field provenance to xmodule not the kvs
Treat model data as dbmodel not dict