'constructor' -> 'builder', 'compile' -> 'matcher'

As per issue 3 on github. 'builder' was the best alternative to
'constructor' I could think of; I also realised 'compile' was
inconsistent, so that gets renamed too.
'construct' -> 'build', document build and write
Support variable sizes in constructors

(and deal with string lengths correctly)