Create conversation object

The goal for this pull request is to create an object that can be used to make managing conversations easier and more efficient.

I've also..
- Increased the selection of html characters that get converted to ASCII
- Fixed issue with while loop running forever because of recursive calls
- Updated the Engram selector algorithm to use the new conversation objects
This should be either `chatterbox.conversation` or `.conversation` in order for it to work in Python 3.