doxygenation, commentation, many small updates

Everything except user types is fully documented now (minus the Lua API
side of things).
Comments were added to everything as it was doxygenated to make things
easier.
Utility Lua libs were changed from classes to namespaces, since the
constructors were deleted anyway.
XML was changed up to allow custom tag names.
Catalog changes:
    LuaPushKeyMatch was created to help with KeyMatch data
    Transactions were moved to more sane places
    Locks were added everywhere they needed to be, and removed from
        places they didn't
    key.size() == 0 was changed to key.empty()
    The Lua forms of GetDKey was removed; it wasn't a significant
        increase in performance enough to warrant the duplicate code