stringext initial version

@avsm

 Once this is merged I can then follow up with refactoring cohttp to use this. Uri is underway as well.