Add initial implementation of 2-handle range sliders for integers.
Add float implementation of range widget
Add an extended range abbreviation including a step value
Fix format problem when showing an error
Add some tests for the 4-5 int/float form in interact()
Adjust range style so that the vertical range marker is visible
Compiled changes to minified CSS
Remove 4-5 tuple forms from interact()
Fix validate logic if min/max are changed
Remove tests for 4-5 tuples, add tests for validate logic
Merge branch 'master' into interact-range-widgets

Conflicts:
	IPython/html/static/style/ipython.min.css
	IPython/html/static/style/style.min.css
	IPython/html/static/widgets/js/widget_int.js
Default to 25-75% of min-max if no value is set instead of 0-1
Minor improvements to file upload.

Updated file upload so that the icon of the new upload item reflects if it is a file or notebook, added the ability to use the "Enter" key in the filename text box to cause the upload to happen, and make it so that the list of files refreshes immediately upon successful upload.
Added ESC keep to upload textbox to cancel.
Uploading a file with a name that already exists asks the user if they want to overwrite.

This is not perfect (it doesn't check against the real filesystem but the current list in the browser which may be stale) but it is better than nothing.
Fixed many edge cases in file uploads.

When there is an error reading a file, a message is shown (I could reproduce this easily by dragging a folder onto the list), added a missing "return false;" after an illegal notebook was detected, and we prevent no-name files and files starting with dots (which will not be visible in dashboard and automatically overwritten).
File list refreshes no longer move the upload filename boxes.

The new file list is always placed after the upload filename boxes. I also removed the autorefresh guards against refreshing while having an upload box since this is no longer a problem.
Make the widget property_lock store the JSON state, not the original object

Comparison between arbitrary python objects can get crazy, whereas we really
only care about if the JSON state we are syncing is different.  So with this change,
we store and check against the JSON state.
Support both value tuple and upper, lower traits for both int and float widgets
Add a number of extra tests for the range widgets