Overhaul Git.io/Is.gd/Github Issues

This is part of the start of a broader effort to overhaul all HTTP.

Changes in this commit:

* Overhaul URL shorteners to be inheritance based and use requests
* This paves the way for config-based choosing of URL shortners
* Move git.io into shorten.py
* Rewrite github.py to use requests
* Add the start of a textutils library (currently only has truncate())