feature(upgrade): Added ElggUpgrade object.

Refs #6451.

Rebased version of #6623. There was conflict on version.php only.