improve `solver` module
improve `solver` module

- update `fermi` function names
- alter `get_fermi_functions` to take all of the necessary
  parameters as arguments; this is necessary for
  `scalar_charge_neutrality`
- add `scalar_charge_neutrality`, and use it in `_poisson_zero_current`
  to calculate the boundary conditions
- change `_poisson_zero_current` to accept the initial guess as a
  parameter, allowing previous solutions to be passed in, making
  voltage sweeps more efficient
scott-maddox/obpds