[codesign] optional switch and dryrun
optional switches are the list of ios usb dependency artifacts inherited from https://github.com/christopherfujino/codesign.py/blob/master/codesign.py#L635. This PR adds path and arg support to these artifacts. Dryrun is set to be the default mode that does not upload the signed artifacts, as abiding https://github.com/flutter/flutter/issues/104450#event-6664083158.
Tested ios usb artifacts by signing the ios usb led artifacts from sourceUrl = '$bucketPrefix/ios-usb-dependencies/unsigned/$rawName/led/$from';. Verified locally that it works.
Tested engine artifacts with dry run and added a few bug fixes. The full integration test with engine_v2 will be verified later.
update 10/04: refactored the app to take in 'file path patterns', which are regex-ish file paths to support a generic signing of different types of artifacts