Unsafe characters aren't excluded or encoded in URL
status-im
As a user, I want to tap any link on chat or type any char in webview and don't see any crashes or app hanging.
### The app doesn't crash anymore, only parsing URLs in UI is wrong!
### Description
_Type_: Bug
_Summary_: some of chars are unsafe and couldn't be the part of link; for such types of links other chats (`Telegram`, `Slack`) are excluded them as part of link.
In Status these chars are resolved as part of link;
If you tap on some of them, it leads to app crash or endless loop on Android.
#### Expected behavior
_Scenario 1:_
chars are not resolved as part of the link;
_Scenario 2_
no crashes or endless spinner
#### Actual behavior
_Scenario 1:_
chars are resolved as part of the link
(Status VS Telegram):

_Scenario 2_
crashes or endless spinner in Android
### Reproduction
_Scenario 1:_
* Open Status
* Sign in
* Join any 1-1 or public chat
* Send one link according to table below:
|Char | Where is located | Link Examle | Link handling (Slack, Tetlgram) | Link handling (Status chat)|
|----|----|----|----|----|
|`!`, `$`, `%`, `&`, `*`, `+`, `,`, `.`, `:`, `";"`, `?`, `@`, `\`, `]`, `^`, ` grave accent`, `{`, `\\\\|`, `}`, `~`, `‚`, `„`, `†`, `‡`, `‰`, `‹`, `‘`, `’`, `“`, `”`, `•`, `›`, `¡`, `¢`, `£`, `¤`, `¥`, `¦`, `§`, `¨`, `©`, `«`, `¬`, `®`, `¯`, `°`, `±`, `²`, `³`, `´`, `¶`, `·`, `¸`, `¹`, `º`, `»`, `¼`, `½`, `¾`, `¿` , `=`| At the beginning, At the end, At the middle | https://example.com!; !https://example.com; https://exam!ple.com | If char is placed in the end : it is not resolved as part of link;If char is placed in the middle: it splits link in 2 parts and it is not resolved as part of link. | chars are resolved as part of link|
|`%`, `:`| At the middle | https://exam%ple.com | Slack: resolved as link;Telegram: link is split; | chars are resolved as part of link|
* pay attention how links are handled in Status
_Scenario 2:_
* Open Status on Android
* Sign in
* Join any 1-1 or public chat
* Send one link from each category (according to table below):
|Char | Where is located | Link Examle | Link handling (Status chat) | Link handling (Status webview)|
|----|----|----|----|----|
|`"` , `{`, `}`, ` grave accent`, `˜` ,`¨`, `¯`, `´`, `¸`, | At the beginning, At the end, At the middle | exam{ple.com | chars are resolved as part of link | no encoding;crash on Android.|
|`space`| At the beginning, At the end, At the middle | exam ple.com | space is not resolved as part of URL | no encoding;crash on Android (known, #4205).|
|`;`, `[`, `]`, `^`| At the end,At the middle | https://example.com;https://examp]le.com | chars are resolved as part of link | endless spinner on Android|
|`@`, `\`| At the end | example.com@ | chars are resolved as part of link | endless spinner on Android|
|The ASCII control characters `%00`-`%1F`| At the middle | https://examp%11le.com | chars are resolved as part of link | control characters are replaced by space on Android; endless spinner is shown|
* tap on links or just paste them in Status browser
### Solution
[comment]: # (Please summarise the solution and provide a task list on what needs to be fixed.)
_Summary_:
* [ ] don't resolve chars `!`, `$`, `%`, `&`, `*`, `+`, `,`, `.`, `:`, `";"`, `?`, `@`, `\`, `]`, `^`, ` grave accent`, `{`, `\\|`, `}`, `~`, `‚`, `„`, `†`, `‡`, `‰`, `‹`, `‘`, `’`, `“`, `”`, `•`, `›`, `¡`, `¢`, `£`, `¤`, `¥`, `¦`, `§`, `¨`, `©`, `«`, `¬`, `®`, `¯`, `°`, `±`, `²`, `³`, `´`, `¶`, `·`, `¸`, `¹`, `º`, `»`, `¼`, `½`, `¾`, `¿` , `=`, `"` , `{`, `}`, ` grave accent`, `˜` ,`¨`, `¯`, `´`, `¸` as part of links (according to provided examples);
* [x] encode `"` , `{`, `}`, ` grave accent`, `˜` ,`¨`, `¯`, `´`, `¸` to prevent app crash;
* [ ] handle error with chars `;`, `[`, `]`, `^` and The ASCII control characters `%00`-`%1F` on Android
### Additional Information
[comment]: # (Please do your best to fill this out.)
* Status version: nightly 19/07/18
* Operating System: Android, iOS
#### Logs
* TF session for crash: https://app.testfairy.com/projects/4803622-status/builds/8526949/sessions/4396502918/?accessToken=ZsO/sUjPZjB2OhT/Z5Z1S1QehnA
* TF session for endless spinner: https://app.testfairy.com/projects/4803622-status/builds/8530385/sessions/4396751579/?accessToken=li1UMhqLmGZCf-Es0Km-iE69cgk
* Note: issue with whitespaces in URL is already created (https://github.com/status-im/status-react/issues/4205)