Advances In Discrete Chemical Computation: Algorithms, Lower Bounds, And Software For Population Protocols