Added Stream support to the API

Sometimes the files we need to scan do not live on the same server as
nClam or the ClamAV. The lack of a Stream API was making this difficult
to deal with. I swapped out the byte[] usage in SendStreamFileChunks for
Stream usage and added an overload of SendAndScanFile that accepts a
Stream. The other overloads were adjusted to use streams internally as
well. the MaxStreamLength property was also added to prevent too much
data from being streamed to Clamd and causing it to cut the connection.