Go through normal `update_all` logic when updating counter caches

Part of a larger refactoring to remove type casting behavior from Arel
Go through normal `update_all` logic when updating lock columns