StateDStream changes to give updateStateByKey consistent behavior

updateStateByKey only calls updateFunc when data is actively pushed into it.  This was problematic for us when trying to implement session expiration logic using a SynchronizedQueue.  This update fixes the issue, as well as makes the behavior of updateStateByKey consistent.