Move Task, TaskPool into Detail.
* Add Batang::ValueWrapper::Wrapper and its friends,
  which work like struct(T) in Rust.
* Make Gurigi/Common.h and Maragi/Common.h use their referring libraries'
  Common.h.
Split ValueWrapper::Wrapper::ValueRef into ByValue and ByRef.

ByValue is self-containing proxy, but ByRef just has reference of wrapper.
Implement quitting thread.
Merge branch 'master' into ui

Conflicts:
	Gurigi/Common.h
	Maragi/Common.h
Improve bidi rendering.
Add Gurigi::UiThread which manages current running UI thread.