Added semantic versioning. Fixed warnings, general code style cleanup. Removed ability to define comparison callback at compile-time. `skiplist_new` always takes a comparison function pointer, which is required. Memory allocation callback (and a user data `void *`) are now arguments to `skiplist_new`. Both are optional, and can be NULL. Changed the iteration API to use a CONTINUE/HALT enum return value, since a real return value of a user-chosen type can still go in the environment passed to the callback. `first, last, pop_first, pop_last`, and others now return `bool` rather than an int (which was used like a bool). Use more appropriate numeric types: `size_t` rather than `long` for `skiplist_count`'s return value, for example. See CHANGELOG.md for other details.