This fixes a huge number of hard-to-detect runtime bugs that occur when a default utf-8 string from one of these libraries is passed into a method expecting ascii-8bit
need access to the uri checksum routines outside of the handler. moved them to their own mixin and then mixed into the handler. added specs also