Added unit_assert() macro.

Asserts that some statement is true, or prints the statement and reports a failure.
Added possibility to use provider functions.

This patch breaks compatibility with previous versions, and therefore has a new major version number.