Replace sk_has_side_effects keyword with $pure.

Going forward, any function will be considered to be pure if it is
marked with the `$pure` modifier. `$pure` is private and only allowed
in modules.

For reference, the old heuristic was both more complicated and less
flexible:
- User functions are never pure.
- Module functions with a body are never pure.
- Module functions without a body are pure when:
  - The function's name must be on the list of known intrinsics
  - The function must not have the `sk_has_side_effects` modifier

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