Renamed RequiredArg to Retrieve
[retrieve] Retrieve now extends the Class into which it is included
[retrieve] Retrieve is now used uniformly throughout
Refactor. No functional code change.

Merge branch 'retrieve' into upcoming

* retrieve:
  [retrieve] Retrieve is now used uniformly throughout
  [retrieve] Retrieve now extends the Class into which it is included
  Renamed RequiredArg to Retrieve