feat(slider): add full-featured slider component

Closes #260, #245, #221, #160, #36, #31, #21, #255.