Bug 870711 - [B2G] [Leo][SMS] It is possible to invoke the Browser App from an invalid URL text included in a SMS

* Rewrote LinkHelper to avoid a bunch of edge cases and overlapping links
* Modeled greatly after `android.text.util.Linkify`
* Co-Author credit for @lissyx for starting me out with an awesome unit test suite