Can register conditions in which the running loop continues/stops

Test cases can register post conditions that will have to be all
satisfied at the end of the loop, and breaking conditions that are to
exit the running loop. If all of the post conditions are true or any of
the breaking conditions is true, the running loop stops.
To avoid infinite loop, timeout are registered as a breaking condition
before the loop starts running.
Implement Label feature
Replace Engine.emit with router.emit
Add filter feature
match and filter should be initialized with mix order
Output provides router attribute to emit event stream
Fix to cannnot refer rear Label
Add relabel output plugin

From sonots's PR: https://github.com/fluent/fluentd/pull/417
example configs for common core plugins

c.f. https://github.com/fluent/fluentd/issues/407
Accept not a proc but a block as an argument
Merge pull request #414 from itiut/can-register-loop-conditions

Can register conditions in which the loop continues/exits
Merge pull request #424 from kiyoto/example_configs

example configs for common core plugins
Change Filter API

filter method should return filtered record and
default filter_stream behaviour now creates MultiEventStream at each call.
It accepts both MessagePackEventStream and other modifiable with same code.
Improvement @ERROR and logging handling
Fix test with EventRouter
Merge pull request #416 from fluent/add-filter-and-label

Add filter and label
v0.12.0.pre.1