Add Snap.Predicates.Headers.

Refactor code logic into Internal module and re-use it in Params,
Headers and possibly future modules (e.g. Cookies, Body).
Use singular for module names.

Lots of renamings, e.g. Snap.Predicates -> Snap.Predicate.
Fix module names in Tutorial.