Rename contributor to provider

This is more consistent with existing conventions.
new-web-server constructor takes kv args
Promote Index protocol to own namespace