Code cleanup and refactor

- Refactoring code into a class URLShortener
- Checking for existing hashes so as not to overwrite them
- Added the ability to pass in a numeric ID to shorten
- Added a separate URL endpoint for the creation process
- Tweaked the auto ID generation to result in shorter hashes.