fixed: isShadda now always returns a boolean and doesn't use regex
fixed: arabicrange() now doesn't throw an error
added: more tests
enhanced: arabicrange() now memoized (caches the result instead of redundant recalculation)
changed: most is* functions are now in a seperate file, however it is more of an implementation details and doesn't affect araby APIs
next: reducing the use of regex in araby and not using it at all if possible
fixed: isShadda now always returns a boolean and doesn't use regex fixed: arabicrange() now doesn't throw an error added: more tests enhanced: arabicrange() now memoized (caches the result instead of redundant recalculation) changed: most is* functions are now in a seperate file, however it is more of an implementation details and doesn't affect araby APIs
next: reducing the use of regex in araby and not using it at all if possible