Adding Documentation

• Wrote a description for each public type and function
• Changed the order of arguments for Bits function to allow for
multiple arguments
• Adjusted the mutex definition to allow semaphores to identify which
resource they are allowing access for when that matters
•Switched to using an IntList to define the Mutex instead of a regular
one, because that's pretty much what was going on anyways
•Removed FloatList, FloatSet, and FloatSortedSet - they aren't very
useful, and floats don't make for good keys, as .99999 ends up being
different than 1