Updates to variable pH.

- Works with ions with different # of valences.
- Accurately calculates diffusion.
- May be misrepresenting positive ions.