Changed AbstractUser interface hierarchy

`AbstractUserInterface` now inherits from symfony `UserInterface`.
Before this change, only `AbstractUser` was implementing `UserInterface`.
`CustomerInterface` and `AdminUserInterface` were extending
`AbstractUserInterface`, making it possible to inject into collaborating
objects a User that does **not** implement `UserInterface`.
abstract name here for an interface throws me off totally, can we avoid the abstract name please? seems like something went wrong