Fixes#15278
```
Traceback (most recent call last):
File "lib/galaxy/web/framework/middleware/error.py", line 154, in __call__
app_iter = self.application(environ, sr_checker)
File "lib/galaxy/web/framework/middleware/xforwardedhost.py", line 23, in __call__
return self.app(environ, start_response)
File "/galaxy/.venv/lib/python3.6/site-packages/paste/translogger.py", line 69, in __call__
return self.application(environ, replacement_start_response)
File "/galaxy/.venv/lib/python3.6/site-packages/paste/recursive.py", line 85, in __call__
return self.application(environ, start_response)
File "/galaxy/.venv/lib/python3.6/site-packages/routes/middleware.py", line 153, in __call__
response = self.app(environ, start_response)
File "/galaxy/.venv/lib/python3.6/site-packages/paste/httpexceptions.py", line 640, in __call__
return self.application(environ, start_response)
File "lib/galaxy/web/framework/base.py", line 138, in __call__
return self.handle_request(environ, start_response)
File "lib/galaxy/web/framework/base.py", line 217, in handle_request
body = method(trans, **kwargs)
File "lib/tool_shed/webapp/controllers/user.py", line 68, in login
response = self.__validate_login(trans, **kwd)
File "lib/galaxy/webapps/galaxy/controllers/user.py", line 139, in __validate_login
message, user = self.__autoregistration(trans, login, password)
File "lib/galaxy/webapps/galaxy/controllers/user.py", line 97, in __autoregistration
user = self.user_manager.create(email=email, username=username, password="")
File "lib/galaxy/managers/users.py", line 116, in create
user.set_random_password()
AttributeError: 'User' object has no attribute 'set_random_password'
```
Fix `pysam.index()` calls which now use samtools 1.16 where
`samtools index input output` doesn't work any more if `output` is the path
of an already existing file, but `samtools index -o output input` works
fine.
Also:
- Pre-create the (empty) index file for mock test datasets as a unit test
reproducer of the above issue.
- Fix `test_cram` unit test that wasn't checking the return value of
`CRAM.set_index_file()`, which was in fact returning False because
`test-data/2.cram` was not sorted (updated now).
Fix `test_mulled_build_files_cli` unit test that failed with:
```
[Dec 21 01:20:48] SOUT Exploding layer: sha256:c1a16a04cedd950c541fa85e64b62b17eb3b73a7f7e29ea3db23dc9b83dfcade.tar.gz
[Dec 21 01:20:48] SERR
[Dec 21 01:20:48] SERR gzip: /root/.singularity/docker/sha256:c1a16a04cedd950c541fa85e64b62b17eb3b73a7f7e29ea3db23dc9b83dfcade.tar.gz: not in gzip format
[Dec 21 01:20:48] SERR tar: This does not look like a tar archive
[Dec 21 01:20:48] SERR tar: Exiting with failure status due to previous errors
[Dec 21 01:20:48] SOUT Cleaning up...
[Dec 21 01:20:48] ERRO Task processing failed: Unexpected exit code [2] of container [1dd027b25cf7 step-4af955b402], container preserved
```