Implement typevalidator.match() [PERFECTIVE]
typevalidator.match(spec, obj) returns obj if it matches the spec. It returns None otherwise.
typevalidator.match(spec, obj, def) returns obj if it matches the spec, otherwise def.
Also, move unit tests into a separate file [CLEAN UP].
Fixes #15 (closed)