Add snow/SEB interactions, surface water balance, and refactor boundary condition types
Additional changes:
- Add
caninteractmethod inCryoGridmodule for indicating whether two layers/processes are able to interact based on the current state. Implementing this method is optional since the default implementation simply checksisactivefor both layers. - Add
interactmaybe!for conditionally invokinginteract!whencaninteractis true. This method does not need to be overridden and is provided as a convenience. - Add type aliases for coupled water/heat and salt/heat boundary conditions.
- Add interactions for new
SurfaceWaterBalancetype. - The former
SEBmodule is now calledSurfaceand includes both the surface energy and water balance types as well as their corresponding method implementations. - Add plotting utilities in
Diagnosticsmodule. - General refactoring and cleanup.