Add parser for text-based patches
change debug output to be more debug-friendly

It doesn't try to pretend to be the serialization format. It should
show stupidities like zero/empty segments and repeats.
add real output format

also fix deliberately broken test for showing the new
debug format
read patch from file, moving towards cmdline interface
improve handling of escapes

I'm still not really happy with it, but it'll do for now.
Make apply program actually apply
add fuzz test for associativity
sanify build system a bit
General code cleanup

most significant change is replacing a bunch of awkward character
matches with regular conditionals. There's also some code formatting
and commenting.
Defrag keep*keep patches

Should only matter in case where patches had repeated segments
already, and definitely shouldn't hurt anything. The tests
pass, anyway. also formatting.
rm debug prints in cmdline.ml
Add license and README.md