Generalize assets to any block_type but using

AssetKey and the metadata store
PLAT-204

@cpennington @doctoryes plz review (hopefully I'll fix the 2 typos I just noticed before you get to it)
I would like for the following:
1. no namespace collisions between app-provided fields and internally used fields
2. being able to filter/search by app-provided fields.