* Add edns0 code rewrite
* check arg count
* change `new`; set EDNS0 if request doesn't have it set
* change set to replace_or_append
* change to append_or_replace
* return error in new
* update documents
* fixt UT
* return error
* go fmt
* Rework for more general EDNS0 use
Also changed how rules are created and validated. Implements
EDNS0 NSID in addition to local.
* go fmt
* README updates, NSID tests and fixes
* gofmt -s -w
* Fix tests for rewrite syntax change
* Add tests, fix error message
* Review nits
* Missed on nit
* More tests, integration test, fix edns0 parse issue
* Fix README, use RewriteIgnored
* go fmt
This still needs cleanup, but this is a first pass the cleans some
cruft and documents our style (in middleware.md) and makes all the
docs match that style.
Make the CH middleware actually work. Needs a bit of a hack to route
the fake version.bind and friends zone to the correct handler. Fiddle
with the order in directive.go so that CH queries get logged as well.
Secondly add class rewriting to the rewrite middleware handler and also
log the class by default.