Update example.
Make logging middleware better.
Move middleware into separate folders.
Slight optimization of allowedMethods and tests.
Move example to separate file.
Extra check of templates.
Use a copy of the Request

I was worried that a template could potentially write back to Request.
not sure if it's a valid concern or not, but I like how this looks anywayy.

then I realized it's a shallow copy.
Simplify PathParts and remove FormID.