tty::TerminalInfo: made special member functions noexcept.
Reworked geometry handling; fixed terminal resizing bug.

Added geometry types and utilities.

utility: imported new functions from duct/utility.

keys:
	added codepoint_none;
	moved tty::Event::key_input to KeyInputData;
	added KeyInputMatch and operations for key matching.

tty: switched to geometry types; doc tidy & fixes.
tty/Defs: added s_cell_default (moved from Terminal.cpp).

tty::UTF8Block:
	added size parameter to String ctor;
	added operator=()s corresponding to ctors.

tty::Terminal:
	added GCC #pragmas to ignore -Wold-style-cast around offending system libs¹;
	default-initialize sigaction and epoll_event objects where uninitialized
	accesses occur (thanks, Valgrind);
	changed resize handling to queue and handle on poll()²;
	poll(): only reset event type if not open;
	default to clearing back buffer on resize event;
	moved unary states into state store;
	added backbuffer_dirty state to further optimize present();
	added set_opt_retain_backbuffer();
	renamed render() to present();
	added clear_front(), clear_back(), put_line(), and put_rect();
	added get_size() and get_caret_pos();
	renamed ev_pending to m_ev_pending.

test/common: stole shared load_term_info().

test/tty/hello: restructured rendering; removed unused signal handler.

doc: added stubs for keys and geometry.

--

1: Clang 3.3+/3.5 has this warning flag now.

2: write(2) in flush() was being interrupted by the SIGWINCH handler,
which was in effect nesting the screen clear & flush and causing the
output streambuf to reset its position before the next write(2) in the
first flush, which caused an exception from
duct::IO::dynamic_streambuf::discard() when the entire buffer wasn't
written (because now 0 == get_sequence_size(), and we're trying to
discard the non-0 written amount). Now side-by-side resizes will
actually be handled as side-by-side resizes.
premake_common: added -Wno-missing-braces to beard-strict for Clang.