Widgets Overhaul

Was implementing a widget for prism.js and figured it would be a good fit to merge with prettify.

There is however one issue I'm not sure how to solve, so I'm submitting early for discussion.
CDN is configurable, but it is optional and prettify.js is bundled in the javascripts directory.
So when CDN is set prettify.js needs to be ignored but am unable to exclude it, thought that was what exclude was for but no success.