Deduplicate AmpiRequest routines and their handling of NULL statuses
There are 2 parts to this:
1. A successful itest/test should have the same effect as a call to complete/wait, so that there is no need to call complete after a successful test. This doesn't seem to be true for all request types right now.
2. Always check for NULL statuses, so then we don't have to do that check every time we call test/complete/wait, as in the multiple completion routines.