Improve Entity::setId

* $item->setId( 42 ) is no longer deprecated (integer argument)
* $entity->setId is now deprecated (the whole method)
* $item->setId( $entityId ) is still deprecated though now is type hinted as such

Also brings us one step closer to killing Entity
So with this change, this call will appear as deprecated:

    $entity->setId( $id )

These calls will not appear as deprecated:

    $item->setId( $id )
    $property->setId( $id )

That is what the deprecation tag does. It's not because something in a base class is deprecated that is is also deprecated in derivatives. The plan here is to remove it from the base class, so it makes sense to deprecate polymorphic calls to it.