Refactor code around initialization and error strings.

@vhbit I implemented my interpretation of the conversation on #65. I'm not familiar with any other locations that we should invoke: `ffi::init()`. I moved the statics that init relies on into `ffi.rs` as well, let me know if something else is preferred. I got two successful builds back on fork, hopefully there are no more build issues.