Make gate_map seaborn import occur at runtime (#3538)
Make gate_map seaborn import occur at runtime (#3538)

The use of seaborn to generate a colormap for plot_error_map was added
in #3508. When this was done the seaborn import was added in the
matplotlib import block that only gets run if matplotlib is present.
However, there are common cases where matplotlib gets installed
indirectly via a dependency even if qiskit visualization is never
intended to be used. In these cases the qiskit visualization
dependencies are not installed so seaborn is missing. This then causes
an import error which prevents qiskit from being importable at all. This
is because the seaborn import is resolved at import time and
qiskit.visualization gets imported during the import of the qiskit root
namespace (in several places because of visualization methods on core
classes). To address this case this moves the seaborn import to occur at
runtime inside the plot_error_map function and to raise an import error
if it's not found. This way we only ever raise an error when a user
calls the specific function that is using seaborn and it won't interupt
the usage of the rest of the terra.

Fixes #3525
QISKit/qiskit-sdk-py,QISKit/qiskit-sdk-py,QISKit/qiskit-sdk-py