Refactoring `Grover` class in `QuantumAlgorithm` (Qiskit/qiskit-aqua#1268)
Refactoring `Grover` class in `QuantumAlgorithm` (Qiskit/qiskit-aqua#1268)

* added code skelton

* added more information

* modified initialization

* refactored constructor_circuit function

* ver 0.8

* fix lint & style

* work on the initializer

* fix spell

* massively simplify run logic

* updated

* fixed state_vector case

* fixed for QuantumCircuit oracle type

* adding constructor tests

* added constructor tests

* added functional tests

* renamed test_grover_new.py

* fixed typo

* added more tests and changed its name to grover

* removed grover_new files

* fix lint

* fix lint and rm duplicate code

* update grover_optimizer to work on circuits

* make power optional in construct_circuit for bwkdc

* added post_processing

* adding the
iterations argument

* added the iterations argument

* fixed iterations

* fix mypy

* fix lint

* rm utf-8 header and trailing print comments

* allow old signature and test it

* fix lint & rm old test file

* undo reordering of imports to try fixing test

* fix mypy

* fix spell and copyright

* rm unnecessary error if good state is not supported

* refactor init of Grover

* fix bkwd compatible behaviour

* fix spell

* removed special if for TruthTableOracle

* rm unused import

Co-authored-by: Cryoris <761ea7b8820f9c490794378c10a95bac00fe088d@googlemail.com>
Co-authored-by: Manoel Marques <ea0e1aac252908b77f7a6302e9c3d004f36f7b3f@ibm.com>
QISKit/qiskit-sdk-py,QISKit/qiskit-sdk-py,QISKit/qiskit-sdk-py