Make TextField and TextArea components

This allows subclasses to use `sendAction`, among other improvements