Optimize r.is terminal matcher, remove :term hash matcher

The terminal matcher added by r.is is very common, so it deserves
an optized implementation.  This makes RodaRequest::TERM an empty
frozen object, which will only match itself in a case statement,
and adds an additional case to r.match.

While the term matcher was documented in the README, it wasn't
actually used in the specs, and it's unlikely someone is using
it directly.
Add r.root for matching root (path "/"), for easier to read version of r.is ""

I think r.is "" is a little bit strange for new users.  It makes
sense once you understand how the string matching is done, but
considering that matching the root is very common (every app does
it), it doesn't hurt to have a dedicated method for it.  This
should hopefully make Roda more approachable.

Cuba has a similar method, but Cuba's method matches either the
empty path or /. I didn't think that was a good default as it
leads to non-canonical routes, so I removed it earlier.

As this doesn't consume the "/" from the path or use any regexps,
it is probably faster that r.is "" as well.