Gracefully handle milestone request timeout

If a milestone request took a long time / never returned, the Run button would stay grayed out even once Reset was pressed.

Rather than setting a timeout and falling back on that, this solution now has us (1) never disable the run button and (2) have Reset cancel the AJAX request.

1. Use jQuery for remote request, fall back to re-enabling Run button if HTTP request completely fails / never returns
1. Cancel remote requests on reset

Associated blockly change: https://github.com/code-dot-org/blockly/pull/596

Tested cucumber test on Chrome locally, still need to test on all browsers.