rework tests and custom assertions, write a simple spaces parser

actually unit test individual parsers instead of parse itself (which will
likely change a lot). play with traits...