Begin refactoring. This commit leaves BESI in an unuseable state.
Partial refactor. There's still a bit to do (like split off the mySQL driver, ElasticSearch wrapper, HTTP library, debug, and threading model into their own projects, and juggle some variables around), but everything appears as functional as it was prior to the refactor, so I'm merging this back in.

I'm just happy I got this done ahead of the 0.5 release for Accordance.