The existing parse method uses checkArgument to check that the given
string represents a valid Change.Id. When this fails it results in an
IllegalStateException which callers must handle.
Introduce a new tryParse method which instead returns an Optional
which is empty if the string is not a valid Change.Id.
Refactor existing callers to use it, and deprecate the existing one.
Change-Id: Ibb9b27b5556f0e5abb0287be62640bf895e94fe1