SPBucket: Prevents empty lastChangeSignature scenarios

There are several flows that could, potentially, lead to multiple calls to `SPWebSocketChannel :: allVersionsFinishedForBucket` method.

If that happens, we could, potentially, end up with a SPBucket instance with a nil `lastChangeSignature field.

Fixes #325 

Added some comments on the main ticket. Most likely candidate to be hitting the `allVersionsFinishedForBucket` method, when it shouldn't is the entity-redownload flow, which is triggered if a remote change fails to be applied.

(As discussed on slack!) we'll be pushing a fix for that, shortly. Thanks Fred!