Fix #2039.

Broadcaster will now reject writes if the replication settings are unsatisfiable, instead of sending the write to available replicas and returning an error message.

Also, made broadcaster_t be responsible for consulting the ack_checker_t directly instead of passing acks back to the master_t.
Comment clarifying fix for #2039.
Fix some minor code hygiene issues
Use rassert() instead of assert()
Merge branch 'tim_2039' into next