ISPN-4528 Genericize remaining M/R internal classes

Master only. See https://issues.jboss.org/browse/ISPN-4528 for more details. 
@wburns I updated the above noted signatures for executeTask. I could not figure out how to do AbstractExternalizers, if possible at all. However, please focus on how IntermediateKey is now used for both shared and non-shared tmp caches making everything easier to understand and maintain.