A general and robust high-order numerical framework for shock-capturing: entropy-bounding, shock detection and artificial viscosity