Use route_handler accessor rather than direct access to underlying object
Add predicate to Error exception attribute

Use the predicate rather than interacting with the definedness of the underlying
object hash
Use tempname accessor in Request::Upload avoids direct access to the object hash
Add (private) predicate to Context->session attribute.

Use predicates for logic within has_session.
reflect changes
Merge branch 'Pr/accessor_nits'