Re #7524. A more sensible default value in the vector.

The previous value was 0, which of course is always a valid workspace
index and was the one pointed to for any detector ids that were between
the min & max for the instrument but were not found in the workspace.
The default now is the largest possible number.
Re #7524. Use more sensible default values.

For the vector of pointers to event lists that is used when adding the
events, make the default NULL instead of the first event list so that
detector ids that aren't in the workspace but might exist don't point
to the wrong thing. NULL-ness is already checked for at the point of
use.

Also, add a check on the vector that comes back from
MatrixWorkspace::getDetectorIDToWorkspaceIndexVector for the workspace
index being out of range because it has the very large default. In that
case no attempt is made to assign an event list pointer at it remains
at the default (NULL).
Re #7524. Remove declaration of unused variable.
Re #7524. MSVC can now use emplace_back.

Not sure it really makes any difference in this case, but why not….
Merge branch 'bugfix/7524_basis_loading_error' into develop