Fixes #59 by adding bool return value for each event handler function

For each event handler function, change its return type from `void` to `bool`.
Normally a handler should return `true` to indicate that the event is handled successfully.
If the handler want to stop further processing, it returns `false`. And then the event publisher shall stop the processing.

`Writer`s were originally return `Writer&` as fluent API. These return types were change to `bool`.

Currently this change should not affect performance as `Document` always able to process the event, i.e. returning `true`. So `Reader` should opt out the checking code.

In the future, should check the state of output stream. If it is in error state, should return `false` as soon as possible. But there will be some overheads involved.