static elastic(bounciness: number = 1): (t: number) => number {
    var p = bounciness * Math.PI;
    return (t) => 1 - Math.pow(Math.cos(t * Math.PI / 2), 3) * Math.cos(t * p);
  }
A simple elastic interaction, similar to a spring.  Default bounciness
is 1, which overshoots a little bit once.  0 bounciness doesn't overshoot
at all, and bounciness of N > 1 will overshoot about N times.

Wolfram Plots:

  http://tiny.cc/elastic_b_1 (default bounciness = 1)
  http://tiny.cc/elastic_b_3 (bounciness = 3)