[Security] add an AbstractVoter implementation

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| License       | MIT
| Doc PR        | TODO

The idea is to reduce boilerplate required to create custom Voter, doing most of the work for the developer and guiding him on the path by providing simple requirements via abstract methods that will be called by the AbstractVoter.

P.S. This is meant to be a [DX Initiative](https://github.com/symfony/symfony/issues?labels=DX&state=open) improvement.
in 5.3.3 to 5.3.6, ``is_a`` does not trigger the autoloading when passing a string. This won't cause issue for the behavior in the voter (as the class name comes from ``get_class`` and so the class is already autoloaded) but it could for other usages of the method.