Refactor: Use exact-width integer types where appropriate instead of char/short/long.

Using boost's defined exact-width integers because they are cross platform, and we're already using boost.
Still use char* for string data
Use size_t, int, etc where appropriate when using other APIs.
Still good to use int for iterating through objects that don't have defined maximums.