support for retrieving and not setting limits

Previously sending a LimitDisk/LimitMemory/LimitBandwidth/LimitCPU would not
distinguish between a zero value and a value not being provided. The desired
behavior when it is not provided is to return the current value.

This splits the retrieval of the current value out into a separate function on
Container, instead of just being returned in the Limit* functions.