Design principles of cellular differentiation control: lessons from Bacillus subtilis