simplify controller structure

restructure broadcast stream controller to resemble that of the activity
stream controller by using a promise made in AuthService
use serverTimeOffset

note: the offset turns out to be non-negligible (e.g. ~17 seconds on my
computer)