Add `keyboard` option to carousel

Also adds unit tests for keyboard events.

Fixes #14468.