ProcessManager version 2

introducing is_new(), is_idle(), shutdown(), reserve_wait(endpatterns), reserve_writeln(line), reserve_read(endpatterns), go_bulk(), go_part(), and tick()

This pullreq is to introduce ProcessManager version 2 (PM2) without removing current version of ProcessManager (PM1). PM2 is already used in some experimental projects such as neoclojure. PM1 functions aren't removed or marked as DEPRECATED yet, but I'm planning to mark them as DEPRECATED eventually once PM2 gets stable.

References
* PM1を使ったコードの改善、そしてPM2への移植 <https://gist.github.com/ujihisa/53429203cec28d9396c6>
* PM2 <https://gist.github.com/ujihisa/06953aae66eff9aa8d29>
* VimConf2014 slides "PM2" http://vimconf.vim-jp.org/2014/reports/

ここから上の関数達、直接呼ぶことはないので、`_` を付けて private にした方が良さそうです。