Use Blob.slice if available; and fail loudly if no known slicing method is found

* Blob.slice is standardized in HTML5 and should be preferred over vendor-specific methods if it is available (http://www.w3.org/TR/FileAPI/#slice-method-algo)

* If no known slicing method (`.slice`, `.webkitSlice` or `.mozSlice`) is available in the browser, fail loudly with a Javascript error instead of passing a null file body to the server (the current behavior) -- the latter will cause the server to 404, making it difficult to track down bugs or identify unsupported browsers.