Allow ProgramUsage add/remove for any kind of element.

Previously, we only supported adding Statements, although we supported
removing Statements, ProgramElements and Expressions. Now, we can add or
remove any kind of element.

`replace` was deleted; it was only used in one place, and it could be
replaced by a pair of calls to `remove` and `add`.  (`replace`
was originally used during the simplification pass.)

Change-Id: I0a0093ab60154fd5f5adfcd5c37d17e576c5379a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/435624
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
3 files changed