Caching

This is the caching branch PR targeting master. Please see https://github.com/trainingwheels/trainingwheels/pull/68 for description of what it does.