tools: Check for external tools needed in check_format.py (#4788)
tools: Check for external tools needed in check_format.py (#4788)

Before this change, `check_format.py fix` was crashing infinitely
when external tools like clang-format-7 or buildifier were not
available. After this change, the script looks up for those tools
and shows an error if they are unavailable. Error messages contain
instructions how to use CLANG_FORMAT and BUILDIFIER_BIN env
variables and how to install buildifier.

Risk Level: low
Testing: n/a
Docs Changes: n/a
Release Notes: n/a
Fixes: #4786

Signed-off-by: Michal Rostecki <82ebf970c69340aebb770c3853be5fd96a3eb584@suse.de>
envoyproxy/envoy,lizan/envoy,jrajahalme/envoy,dnoe/envoy,envoyproxy/envoy,istio/envoy,eklitzke/envoy,envoyproxy/envoy,lyft/envoy,envoyproxy/envoy,dnoe/envoy,lizan/envoy,envoyproxy/envoy,istio/envoy,istio/envoy,lizan/envoy,lizan/envoy,istio/envoy,lyft/envoy,envoyproxy/envoy,dnoe/envoy,envoyproxy/envoy-wasm,jrajahalme/envoy,jrajahalme/envoy,lizan/envoy,lyft/envoy,envoyproxy/envoy-wasm,dnoe/envoy,eklitzke/envoy,istio/envoy,envoyproxy/envoy,envoyproxy/envoy-wasm,envoyproxy/envoy,dnoe/envoy,jrajahalme/envoy,envoyproxy/envoy,envoyproxy/envoy-wasm,envoyproxy/envoy-wasm,eklitzke/envoy,jrajahalme/envoy,eklitzke/envoy,lyft/envoy,envoyproxy/envoy-wasm,lyft/envoy,envoyproxy/envoy-wasm,istio/envoy,eklitzke/envoy,envoyproxy/envoy,envoyproxy/envoy,istio/envoy,lyft/envoy,lizan/envoy,eklitzke/envoy,jrajahalme/envoy,envoyproxy/envoy