initial plumbing to handle external_id context
add database router test for external_id; introduce database backend
let exception raise so database router can log the error
add Kannel delivery report functionality; use requests refs #244