Re-structured assertion code to be based on predicates. #328
topbadger wants to merge
topbadger:feature/assertion-predicates
into valfirst:master
topbadger:feature/assertion-predicates
into valfirst:master