[Design] Adding support for ViewLocationExpanders to allow modifying view locations

Fixes #1039


not sure I get how viewengine turned async again as part of this change.