Fix getting tools for cross-shard users
Fix getting tools for cross-shard users

For some reason the code (since 2014) was adding a user into the context
(user is only passed to all_tools_for / ContextToolFinder in three places,
listed below, but I left them in for now just to keep this commit small.
It's evident from them that they are indeed passing a user in as the
"user" field. I checked all Canvas shards and there are no tools with
context_type User.

The problem is when the user cross-shard, it looks on that shard for
tools (it won't find any) and single_shard_scope returns the first
scope. Without user, there will only be one scope, because a course and
its accounts are always on the same shard (and anyway,
contexts_to_search always returns `context` first, so it should be
first when making scopes with `partition_by_shard`.

refs INTEROP-7736

Test plan:
- In a multi-shard environment, set up an LTI tool with assignment,
  link, or resource selection (on by default in LTI 1.1 tools) on an
  account or course which is _not_ the same as your user's home shard,
  but that your user has access to.
- Create a new assignment and choose "External Tool" as the submission
  type and click "Find". The tool should show up in the list. To make
  sure you can repro the problem, check out the code before this commit
  and observe that it doesn't show up in the list.

Change-Id: I85ddec125e41329e712766226f9e0eccd16b7ee8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/303172
Tested-by: Service Cloud Jenkins <9144042a601061f88f1e1d7a1753ea3e2972119d@instructure.com>
Reviewed-by: Weston Dransfield <e9203059795dc94e28a8831c65eb7869e818825e@instructure.com>
QA-Review: Weston Dransfield <e9203059795dc94e28a8831c65eb7869e818825e@instructure.com>
Product-Review: Evan Battaglia <e557ffdfc4b80aab44858030b0ae5370b86cb7b1@instructure.com>

sfu/canvas-lms,sfu/canvas-lms,sfu/canvas-lms,sfu/canvas-lms,sfu/canvas-lms,sfu/canvas-lms,sfu/canvas-lms