[XNIO-122] Prevent BufferOverflowException at Buffers.copy(ByteBuffer, int, BuferAllocator).

The exception, thrown if sliceSize parameter is negative, is caused by the erroneous call to Buffers.limit.
[XNIO-122] Prevent BufferOverflowException thrown by Buffers.copy(ByteBuffer, ByteBuffer[], int, int).

The exception is thrown typically when destination buffer has a length smaller then the number of bytes to be copied.
[XNIO-125] Fix copy call inside of Buffers.copy(int, ByteBuffer, ByteBuffer[], int, int).

The method was copying destination into sources, while it should be the opposite. As a result, this method was returning empty copies.
[XNIO-126] Fix return statement of Buffers.trySkip(Buffer[], int, int, long).
[XNIO-127] At Buffers.readModifiedUtf8Z and Buffers.readModifiedUtf8Line methods, treat bytes whose 0xff mask is larger than 0xf0.

Those bytes were being omitted, while in fact they should be replaced by the replacement char.
[XNIO-128] Fix Buffers.readLine. The method was ignoring the last character in src buffer.
[XNIO-129] Fix IllegalArgumentException thrown by Buffers.addRandom(ByteBuffer, Random), which occurs whenever targetBuffer has no remaining space.
[XNIO-130] Fix 'to' parameter at the Arrays.copyOfRange(byte[] original, int from, int to)  call performed by ByteString.copyOf(byte[] b, int offset, int len).
[XNIO-131] Fix IndexOutOfBoundsException check at ByteString.substring(int offs, int len) method.
[XNIO-132] Check if target being closed/shutdown is null at IoUtils.safeClose(IoFuture) and IoUtils.safeShutdownReads(SuspendableReadableChannel).

Similarly to the remaining IoUtils.safeClose methods, these methods should check for nullity to keep consistency throughout the api.
[XNIO-133] Fix IoUtils.transfer method.

The value of total, used as reference in the while loop was not being updated in the iteration.
[XNIO-134] Fix Ioutils.RetryingNotifier.

This notifier was ignoring cancelled and done results. As a consequence, if a open request is performed to the retrying channel source (returned by IoUtils.retryingChannelSource), the open IoFuture would fail to have its result defined unless the open operation fails.
[XNIO-135] At OptionMap.parseAll(Properties, String), append '.' to prefix whenever needed.

This commit makes parseAll(Properties, String) consistent with parseAll(Properties, String, ClassLoader), which appends the '.' to prefix whenever the prefix does not end with '.'.
Also, update the javadoc.
[XNIO-136] Use a non-null class loader for parsing at OptionMap.parseAll(Properties, String).

The OptionMap's class loader should be used instead of null when invoking Option.fromString, or else the parseAll method will fail to load the requested options from properties.
[XNIO-137] Fix Sequence.isEmpty() method.
[XNIO-146] At SequenceOption.parseValue(String, ClassLoader) method, parse an empty string as an empty sequence. Do the same with TypeSequenceOption.

Otherwise, an empty string is parsed as a sequence containing an empty string.
[XNIO-138] Update state to RESUMED on EmptyStreamSourceChannel.wakeupReads.

Also, cover the unexpected scenario where readRunnable is invoked with a null listener (in this case, reads should be suspended).
Remove final modifier from EmptyStreamSourceChannel.
[XNIO-139] At PushBackStreamChannel, check for null channel before performing any operation.

Once closed, if the channel is requested to perform any operation it will throw a NullPointerException, while in fact it should just ignore the operation request.
[XNIO-140] Update count value when invoking next.transferTo, at BufferHolder.transferTo(long, ByteBuffer, StreamSinkChannel).

Without this fix, PushBackStreamChannel.transferTo(long, ByteBuffer, StreamSinkChannel) would transfer more bytes than requested.