protect highlight.js against unknown languages

falls back on autodetect if specified language fails (e.g. unrecognized language).

closes #3268