Issue #53: improve external links handling

External links are URLs contained in square brackets.
If the text inside square brackets is not a URL then the string is plain text.

Change is twofold:
- restrict external links to URLs and not URIs
- create text nodes when external links creation fails