Add implementation for checkboxes, passwords, and emails.

Ensure that direction of text selection is properly captured.
Change send function to be curry-able.
Make sure that List only gets instantiated once. Requires that the list library is pure (never touches the `elm` variable)