Support OpenBSD, FreeBSD, and NetBSD

Tested on OpenBSD, but the others should behave similarly.
Support terminals without the CHA opcode

Some terminals, for example OpenBSD without X, do not support the Cursor
Character Absolute (CHA) opcode. Detect support and use CR/CUF instead
on those terminals.
Rename x_orig to xOrig

As suggested by golint. Underscores aren't very go-ish.
Replace zero-length slice with nil

This avoids an unnecessary call to make. As suggested by the new golint.
Add TerminalSupported

This function returns true if line editing is available, and false if
the fallback (no line editing) will be used.
Add function TerminalMode and interface ModeApplier

These functions are provided as a convenience for the management of the
terminal input mode state. Most users of liner will never need to call
them directly.
Fix TERM=dumb

Only check ANSI/ECMA-48 capabilities if the terminal is not blacklisted.