Big refactor

* Moves bingle functions into bingle class
* Creates bingle/mingle modules
* Abstracts Mingle class into separte 'Mingle' and 'MingleRequest'
classes for better isolation of request data
* Makes pickle path configurable

Defiintely more can/should be done to clean this up. Might be nice to
move more of the internal functionality into the Bingle class rather
than having it be so procedural (eg have it take a Mingle object and do
a lot of the magic internally). Also would be cool to simplify/cleanup
config and option handling.