[STREAMING] SPARK-1730. Make receiver store data reliably to avoid data-loss on exec...

...utor failures.

Added a new method in Receiver, ReceiverSupervisor, ReceiverSupervisorImpl to store the data
and callback a supplied function with a given argument.
The only issue is that there is nothing that stops a buggy receiver to call storeReliably(buffer, null). This just protects against this - else we'd have to explicitly do a null check.