Add read streaming capability to the underlying connection.

This is simply achieved by passing a block through to each method. No other code
is affected at this point.
Add a read method to stream data directly to a file.

Server#read_to_file simply adds a filename parameter to the normal Server#read
method.
Stream zip data from server.

t2-run-workflow script updated and tests included.
Stream baclava data from server.

t2-run-workflow script updated and tests included.
Expose streaming capability to output ports.

Add functionality to the Run class to allow output port data to be streamed.
Bring port error handling inline with normal values.

Error messages may be quite big so we should treat them like normal port values.
There is a fallback for older Taverna Servers that don't provide error message
size: in these cases the whole message is still returned.

OutputPort#error and PortValue#error have been deprecated for removal in version
1.1.0.
Tidy up usage of a mime-type for empty ports.

Seems sensible to define the type formally as a constant.
Add methods to test for empty ports or port values.

OutputPort#empty? and PortValue#empty? added. This allows testing before
attempting to download or stream data from a port.

Note that if the output port holds a list then it is not considered empty, even
if that list is empty. This is because the port itself is not empty, there is a
list there! A separate test should be performed to see if that list is empty or
not.

Tests also added.
Add output port data streaming functionality.

Output port data can now be streamed from the server to allow for large data to
be handled without it all being downloaded into memory first. Any data that is
already in memory will not be downloaded again but is inserted into the stream
in the correct place.

Tests are also included.
Stream output data directly to a file.

Use the new streaming functionality to enable streaming directly to a file.
Add general stream-to-stream data downloads.

Now data values can be streamed to any object with a write method. The current
file methods now wrap these general stream methods.
Expose stream-to-stream methods in the Run class.

Can now use this for getting zip output and baclava output. Tests also updated.
Add upload to streaming to the underlying connection.

Data can now be passed to the PUT and POST methods in two forms: A simple value
(as before) or a "stream" (most likely a File or IO object).
Stream uploads of workflows and data.

Workflows can now be supplied as a filename or File/IO object as well as a
String. If supplied as a String then they are uploaded as normal but are
streamed otherwise. Data can now also be streamed to the server.
Add streaming examples to the README.
Merge branch 'rh/streaming' into next

* rh/streaming:
  Add streaming examples to the README.
  Stream uploads of workflows and data.
  Add upload to streaming to the underlying connection.
  Expose stream-to-stream methods in the Run class.
  Add general stream-to-stream data downloads.
  Stream output data directly to a file.
  Add output port data streaming functionality.
  Add methods to test for empty ports or port values.
  Tidy up usage of a mime-type for empty ports.
  Bring port error handling inline with normal values.
  Expose streaming capability to output ports.
  Stream baclava data from server.
  Stream zip data from server.
  Add a read method to stream data directly to a file.
  Add read streaming capability to the underlying connection.