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
- 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
Commit-Queue: John Stiles <>
Auto-Submit: John Stiles <>
Reviewed-by: Brian Osman <>
25 files changed