Bugfix: in `wrapAssertion()`, if there isn't an error, don't throw it

Chai seems to panic and don't throw errors even in later language
chains when `undefined` is thrown in an assertion.
Add tests for extending and wrapping an assertion many times
Bump version to 0.1.1
Simplify the API by using one level of callback instead of nested

The problem of too many parameters is solved by putting all context
variables, including `obj`, `expect`, `assert` and `flag`, into a
single `ctx` parameter. Since we have more spaces now, the `expect()`
and `assert()` methods are no longer combined into one.
Directly bind `utils.flag()`, no need to create a wrapper function
Implement method `addSimple()`