More sensible Future.sequence/collect on empty Array.

Previously passing an empty Array of futures would return a future that was
never completed. Now we return one that is already completed successfully with
an empty Array.

Also: remove some stray semicolons