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/

なんか vimlint だとこの `self` が使われてないってなるみたいですね。
そもそもややこしいし変えた方がいいかも?