Implement basic EditLayout and its friends.

EditLayout supports custom font substitution (which isn't
supported by DWrite's TextLayout) and free style layout (if
someone implement custom EditLayoutSource.)
Show caret of Edit control.
Implement temporary caret moving (by arrow keys).
"Neat" texts
Fix caret position bug during resizing.
Fix EditLayoutSink::getTextPosInfo returning wrong point at invisible character.
Merge branch 'master' into ui

Conflicts:
	Gurigi/Common.h
	Maragi/Common.h
Improve bidi rendering.
Add Gurigi::UiThread which manages current running UI thread.
Implement text selection.
Fix caret afterimage problem.
Improve calculating caret position.
Implement select-by-click.
Make UiThread use weak_ptr instead of raw pointer.
Merge branch 'master' into ui
Merge branch 'master' into ui
Make ControlId be typedef of ValueWrapper.
Rename ResourceID to ResourceId.
Implement basic text input.
* Working on scroll bars.
* Rename getNextID to getNextId (according to ControlId)