New Features and Cleanup

This change breaks backwards compatibility.

 * Renamed some functions to be more clear
 * Added ObjectId abstraction for higher level interface
 * Added ability to pull hint, textual, and enums for an OID
 * Various functions now raise value error for invalid OID