refactor(switch): refactor for spec changes

- Focus styles
- Proper theming
- Pullable/draggable, using our own 65-line dragging implementation that works on windows phone/desktop/android/iOS

**PROBLEMS**:

- [ ] How to unit test? We don't use click events, we listen to mousedown/mouseup
- [ ] Disable transition of background-color on initial load