Clearer error message when compiling on python >= 3.3
Fix ICU find returning incorrect position and length parameters when non-BMP characters are present on wide python builds
Speed up searching a little by using a dedicated function for testing if a string contains a substring using primary collation (replaces using primary_find()