[REVIEW ONLY] Implement steps() timing function editor

Marking [REVIEW ONLY] so XD can review.

Current Status:

**Support for:**
* steps(&lt;integer&gt;[,[start|end]]) function
* step-start
* step-end

**Keyboard Events**
* up/down arrows control steps
* left/right arrows control start/end
- discoverability?

**Issues:**
* Mouse support?
  - doesn't seem like any natural gestures
* Edit controls?
  - count spin control
  - toggle switch for start/end
* More then ~25 steps is not usable
  - dynamically make lines thinner as number of steps grows?
  - increase size of editor?
  - rescale grid?
* Editing doc while editor open is unforgiving
  - e.g. While typing "start", editor closes due to intermedite updates

**Validation:**
- also applies to cubic-bezier()
- editor silently fails when invalid parameters
- need way to provide feedback
  - also applies to ">25 steps" case


I developed this using TDD, so this includes Unit Tests.