Fix sending multipart bodies through SocketChannel.

As per documentation, selector.select() returns only keys that have
updated and therefore even if it return zero, it doesn't mean that
selectedKeys wouldn't contain keys that are writable.

See http://stackoverflow.com/questions/9939989/java-nio-selector-select-returns-0-although-channels-are-ready and http://docs.oracle.com/javase/7/docs/api/java/nio/channels/Selector.html#select() for more details.

This commit utilizes the same maxSpin already used in FileChannel case
for detecting that writing has stuck somewhere.  A configurable
timeout for select would be the obvious better solution.
Send Content-Disposition header without filename too

Some servers, e.g. Jetty save multipart parts with filename present
in content disposition header to disk.  To prevent this we want
to be able to send Content-Disposition header with name only
(so we can easily access it) but not store bytes to disk to prevent
unwanted IO.
Merge pull request #390 from plouh/ahc-1.7.x

Fix sending multipart bodies through SocketChannel