Pushing out an entire project re-write, due to 2.
It turns out that the typing library is really messy under-the-hood and changes radically from version-to-version, so this release fixes all of these issues.
Other changes include:
* Fixed min_list_length and max_list_length erroring
* Allowed typing.List within typing.Union
* Renamed min_length and max_length to min_str_length and max_str_length for clarity
* Error handling is now done handled very differently - the user has more control over the error message by looking at the exception args