React tables

This is a redo of #1502. I have done some architectural restructuring so that the base Table React component is more generalizable, and I've changed the way components get mounted onto the view (originally was using the react-rails gem, but now going a more native route). Also deleted unnecessary .rjs files (for the original tables) and partials, as well as the students' populate route in route.rb (we now populate by sending an AJAX request to the same url, just requesting it in JSON).
Well you are not supposed to modify a state object directly but instead go through `setState` so React can know when to re-render. I had to copy the array to be able to add/remove the checked row id without interfering with the state object, then afterwards call `setState`.