Completion cleanup

This branch refactors autocompletion to make it easier to extend and reuse, adds history features to bpython-curtsies, and removes support of alternate completion modes (fuzzy, substring).

Merging this branch into master requires we do a bugfix release of bpython 0.13 because I didn't version curtsies correctly the first time around. Once this is done we can merge, provided folks think the changes are alright.