If a tweet had a prefix (@names that it was replying to) then the length
of these is counted in the indices that show the locations of entities
within the tweet. But we were applying those indices to the 'display'
part of the tweet that doesn't include the prefix.
So, if the tweet was:
@bob Please meet @bill
and the prefix was `@bob `, then the indices for linking `@bill`
are something like `17,21`. But we were applying the link around
`@bill` to the display text part of the tweet, which is:
Please meet @bill
And so the indices no longer lined up with `@bill`.
Now they do, and the same for URLs and hashtags.
We were trying to link to each media item using its
`url`/`expanded_url`. But there is only one of these, shared across
all of a tweet's media items. So attempting to put it in several times,
in the same location, was a bit of a mess!
So it now only puts the `url`/`expanded_url` in once, no matter
how many media items there are.