fix sharding issues for lti variable substitions

test plan:
 - lti launch with all custom variable substitutions should work
 - lti launch where the user and context are in different shards should return the correct roles

fixes PLAT-612

Change-Id: Ie2735106fb46b99d8c96f52dade701af5cbb06df
Reviewed-on: https://gerrit.instructure.com/40133
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>