@NonNull
	protected ReliableWriteRequest beginReliableWrite() {
		return Request.newReliableWriteRequest()
				.setRequestHandler(requestHandler);
	}
Begins the Reliable Write sub-procedure. Requests that need to be performed reliably
should be enqueued with {@link ReliableWriteRequest#add(Operation)} instead of using
{@link Request#enqueue()}. The library will verify all Write operations and will
automatically abort the Reliable Write procedure when the returned data mismatch with the
data sent. When all requests enqueued in the {@link ReliableWriteRequest} were completed,
the Reliable Write will be automatically executed.
<p>
Long Write will not work when Reliable Write is in progress. The library will make sure
that {@link WriteRequest#split()} was called for all {@link WriteRequest} packets, had
they not been assigned other splitter.
<p>
At least one Write operation must be executed before executing or aborting, otherwise the
{@link GattError#GATT_INVALID_OFFSET} error will be reported. Because of that, enqueueing
a {@link ReliableWriteRequest} without any operations does nothing.
<p>
Example of usage:
<pre>
    beginReliableWrite()
          .add(writeCharacteristic(someCharacteristic, someData)
                  .fail(...)
                  .done(...))
          // Non-write requests are also possible
          .add(requestMtu(200))
          // Data will be written in the same order
          .add(writeCharacteristic(someCharacteristic, differentData))
          // This will return the OLD data, not 'differentData', as the RW wasn't executed!
          .add(readCharacteristic(someCharacteristic).with(callback))
          // Multiple characteristics may be written during a single RW
          .add(writeCharacteristic(someOtherCharacteristic, importantData))
       // Finally, enqueue the Reliable Write request in BleManager
    	  .enqueue();
</pre>

@return The request.
ble/src/main/java/no/nordicsemi/android/ble/BleManager.java