ContainerRequest is a class to capture resource requests associated with a
 Container, this will be used by scheduler to recover resource requests if the
 container preempted or cancelled before AM acquire the container.
 It should include deducted resource requests when the container allocated.
 Lifecycle of the ContainerRequest is:
 
 1) It is instantiated when container created.
 2) It will be set to ContainerImpl by scheduler.
 3) When container preempted or cancelled because of whatever reason before
    container acquired by AM. ContainerRequest will be added back to pending
    request pool.
 4) It will be cleared from ContainerImpl if the container already acquired by
    AM.