fix RequireJS migration of the Notes plugin: always properly require() the Reveal component and place the Notes plugin in the Reveal.AddOn namespace so it (and its brethren) don't pollute the Reveal.* space but instead all reside inside the Reveal.AddOn.* subspace.
migrated the Search plugin to RequireJS and upgraded it to the new Hilitor by abstracting out the Reveal-specific hacks in the local Hilitor copy.
cleaned out the Search plugin which now properly require()s the library it uses for highlighting: Hilitor. Which is also included as a submodule in lib/plugins/hilitor/
Move the zoom plugin instance into the Reveal.AddOn.* namespace: Reveal.AddOn.Zoom with the renamed API: Reveal.AddOn.Zoom.isEnabled() instead of the old Reveal.isZoomEnabled()
JSHint happiness
fix crash in zoom plugin due to code change error
make sure search plugin works by properly defining the RequireJS location for the required hilitor component
hit search button after typing would never jump past the first page which had a match due to the searchboxDirty being cleared only when you hit ENTER key, which you don't have to. Fixed: now the `searchboxDirty` is cleared once you run the search, which is much more sensible.
Reveal: export the extend() helper function (and make it tolerate NULL input source argument) + export Reveal.AddOn.* subspace which is used to store plugins' initialization objects, etc.
Search plugin: created options.isHotKey() user-overridable API which performs the hotkey checking. Currently it checks for '?' and [F3] keys (old code looked for 'S' which clashed with the notes plugin); the user can replace the isHoKey() function with their to perform different, possibly complex, hotkey matching logic. Next to the keydown event itself, both the currently focused DOM input element (if any) and the search input field DOM element reference are passed into the callback to further its usability.
minimal refactor of the width/height calculus logic used by both layout() and setupPDF(): it is now contained in getViewportAndSlideDimensionsInfo() and includes a few improvements:

- the calculated available area numbers are rounded own to whole pixels

- setupPDF() did not recon with the fact that config.width and config.height MAY be specified as 'percentages of available space'; now it does.

- both PDF and display now use the config.margin factor.
CSS: temporarily returning to BLOCK mode rather than FLEX as the latter auto-shrink lines / blocks in an attempt to fit the content into the page.

JS:
- fix back-stepping into fragmented slides: do end up at the last fragment then becoming *current*
- tweak/hack to get block/flex? layout to position all content which is higher than the viewport properly: only smaller stuff should get centered, while the oversized stuff should simply start at the top and pray the scrollbar gives access to it all ;-)
another fix for the overview mode, where we just found out that the webkit browser has a bug which can also been undone by switching from preserve-3d to flat, just for the overview.
Meanwhile, we attempt to fix the overview by ensuring all sheets have fixed height so that their CSS transformations will pan out all the same.
just a small tweak (text shadows improvement) for the parallax demo
- typo fixes in comments and config property name

- SECURITY: BLOCK *ALL* query parameters which are either unknown or MAY contain code which will be executed from entering the config object: this introduced the need for a slightly enhanced extend() internal function

- send all event data, at least as much as possible, across the postMessage() sea towards the off-page listeners; DOM object references and function callbacks that may exist in the event data are filtered about before encoding the entire event chunk into JSON by the new filterForJSONtransmission() internal function

- force all slides to the same height (or otherwise you'll get to see very weird layouts for vertical slides in the overview mode!) and use the slide's PADDING to center its content. EXPERIMENTAL

- pass the keyboard event itself to the config.keyboardCondition user-defined callback so that that conditional can look at it and make an informed decision about what and what not to allow through
first baby step to migrate the Math example to the new RequireJS-based Reveal rig.