Use a scale factor and fixed Stevens' coefficient value for gamma
correction. Scale factors within [0,1) will scale down the effect
intensity/amplitude, and values larger than 1 will scale it up.
The scale up function also makes sure it never scales amplitude
above MAX_AMPLITUDE, or relative intensity value above 1.
New implementation can be visualized here:
https://colab.corp.google.com/drive/1rGCBWXyUe7NePaSLnO-qkeFw8h0DkWJA?usp=sharing
This cl also moves the #resolve and #scale methods to superclass
VibrationEffect (using @hide annotation). This will force every new
effect to also define both behaviors (or explicitly ignore them),
and thus avoid cases where the VibratorService skips scaling new
effects by accident.
Fix: 154712843
Test: atest FrameworksCoreTests:VibrationEffectTest
Change-Id: Ib46e609663aec60a49a8827c90df144caaf7c926