Table row navigation

- Allow focus on rows within tables
Merge pull request #631 from codalab/feature/table-row-navigation

Table row navigation
Merge branch 'refs/heads/master' into feature/worksheet_interface
#557 render contents as a blockquote

- strip initial '%' from each line for display purposes (will restore for editing)
- join items in contents array (lines) into a string
- style as blockquote with border, indent, slightly lighter background
- use whitespace: pre in css to preserve indents and linebreaks
- also changed markdown bundles to render inside a div instead of a span because a block-level element is more appropriate
Merge pull request #632 from codalab/feature/557-handle-contents-directive

#557 render contents as a blockquote
#627 Render record bundles as key:value tables

- Reused much of the code from table_bundle_interface.js, including keyboard shortcuts to navigate rows
- the key and value named in the first array of the interpreted object are variable; that is, key does not necessarily have to be "key," and value does not necessarily have to be "value," but there must be a designator of each.
Merge pull request #633 from codalab/feature/627-handle-record-type

#627 Render record bundles as key:value tables
Merge in master, fix change to worksheet api router
#560 delete markdown, inline, contents worksheet items (no tables/bundles yet)
small correction to the detailed results page
Merge remote-tracking branch 'upstream/master'
#560 Delete table rows and tables

- For Table bundles and Record bundles, (d) deletes the focused row, (ctrl+d) deletes the whole table
- Move shared table functionality into a mixin
- Clean up delete functions a bit
- get rid of isMac global var and just listen for ctrl or meta keys
Merge pull request #641 from codalab/feature/560-delete-worksheet-items

Feature/560 delete worksheet items
Worksheet List refactor: proof of concept

- Consolidate all components under one Worksheets parent component
- parent component handles which child component is 'active'
- parent component listens for keyboard shortcuts and handles them, or dispatches the event to the active child component, or does nothing if the active component doesn't care
- parent component keeps track of text to filter by, list component does the filtering at render time
Add comments to proof of concept
Refactor attempt with parent app, WIP
Merge pull request #649 from codalab/feature/worksheet_list_refactor

Feature/worksheet list refactor
Pass keyboardshortcuts and keydown events to children, redo focus classes and item factory WIP
Change shortcut to focus search bar from \ to /
Fix api url to fetch bundles