Fixed the issue.  Refs #7362.
Re #7362. Added validateInputs to the top.

Also re-arranged a bunch of other code. Part of the "clean-up"
that Wenduo had mentioned.
Re #7362. Finished making some parameters optional.
Checkpointing work.  Refs #7362.

1. Continue to cleaning codes by removing some legacy which is not used
now;
2. Removing properties NewInstrument by merging it to InstrumentName
Finished cleaning codes.  Refs #7362.
Fixed some possible memory leakages.  Refs #7362.
Merge remote branch 'origin/feature/7362_enhance_editinstrument'