Implement -b / --buffer-size

This adds -b / --buffer-size to the peco binary. It basically limits the
maximum number of lines that peco will hold at any given time, allowing
you to keep peco running for a long time, even when you are receiving an
infinite stream of lines.

By default the buffer size is unlimited. If --buffer-size is specified,
lines will be thrown away in FIFO order
Protect modification on b.lines
Merge pull request #118 from peco/option-buffer-size

Implement -b / --buffer-size
Update README.md
Update README.md
Refactor NewCtx so that it receives the options struct

see
https://github.com/peco/peco/commit/9660496d99d37184997ccf75e1be831b7d1c70f5#commitcomment-6857198
Merge pull request #122 from peco/refactor-ctx-constructor

Refactor NewCtx so that it receives the options struct
Support --initial-index option like percol
Refactor keymap

Created Action/ActionFunc to wrap common operations
refs #121
Merge pull request #123 from hirose31/feature/initial-index

Support --initial-index option like percol
Change number of --initial-index from one-based index to zero-based (same as percol)
Add SelectNone action

which clears current selection. Also make C-g the default key binding
for this.
Add SelectVisible action

which selects every match that is currently displayed on screen. To
determine which matches are currently visible I chose to expose
currentPage (index, offset, and page size) through the Context. This is
updated every time the screen is redrawn.
Add SelectAll action

which selects every match, visible or not.
Document and rename stuff
Merge pull request #127 from peco/refactor-keymap

Refactor keymap
Merge branch 'select-none-and-all' of github.com:jowl/peco into select-none-and-all

Conflicts:
	ctx.go
s/register/Register/g
Merge pull request #128 from peco/select-none-and-all

Select none and all
Document on --initial-index