William Holmes (British general)