What is the mechanism by which the 'system' adjusts the difficulty of finding blocks so one is found on average every 10 minutes?
It's enforced by the fact that every miner and every Bitcoin user is running software which implements the adjustment algorithm you described.  So everyone is able to compute, and agree, what the current difficulty is supposed to be.  This is the notion of "consensus" which Bitcoin relies on.

If some miner created a block with a difficulty lower than the "correct" current value, the rest of the network would reject it.  The coins created by that block would not be accepted as payment by anybody else, making them effectively worthless, and the transactions contained in that block would not be considered as confirmed by anyone else (though they could still be added later to another valid block).  Other miners would not use that block as the "previous" for their own blocks, and so it would not be incorporated into the block chain.