Store context as metadata on a proxy destination.

This replaces representing destinations with a map.
Remove some unnecessary reflection.