Refactor permission assignments to use IoC container

Addresses [this issue](https://github.com/concrete5/concrete5-5.7.0/issues/186).

I modified all permission assignment classes having a _setPermissionObject()_ method with a type-hinted argument. However, I tested **ONLY** the PageAssignment and AreaAssignment classes.

-Steve