Fixes #2146 Migrate comment annotations to ElggComment objects

Updated version of #365

Everything should be in order for #2146.

A couple of notes however:
 - Comments do not (yet?) have their own links but it might be better to pull this in and open a separate issue for this (#5334?)
 - The upgrade script is ugly (I'm not that good with javascript)

This PR also fixes: #5330 and #3815