add a new data-grid widget

as suggested by Nick, PR for inclusion.

I didn't succeed to have grunt make working, so I included manually src/data-grid.js in the example, it shouldn't be needed with a normal make.

I will document it in the wiki after code review (I'm assuming you'll suggest improvements, I'll document only when it's "stable" and pulled)

In the ep example, I did use jquery for lazyloading the images and underscore for the templating. Neither are requirements, but obviously loading 800 images isn't good usability and using a template for generating html fragment is more convenient.