support highlight.js

This makes the macro `presentation` accept an option `:highlight_js_theme`.
Code in presentation will be highlighted if the given theme is valid.

with this, the options which are passed to `presentation` will be return as an element of a tuple `{html, themes, opts}`. This change makes adding more options easy.