Merged two large functions into one

This commit merged find_closest_enclosing_mesh_name and
find_farthest_enclosing_mesh_name into one function simply called
find_enclosing_mesh_name. It now takes a flag to indicate whether you
want to find the farthest mesh name or not.
Fixed copy-paste comment.
Fixed counting errors when using dynamic geometry.

Some species counts were being duplicated when inserting molecules. This
fixes the problem by resetting the counts to zero whenever the geometry
changes. Triggers and counting hits/crossings haven't been tested yet,
so additional fixes may be required.
Fixed more counting problems with dynamic geometry.
Moved functions into dyngeom.c
Fixed another counting problem.

Counting surface molecules on surface regions was not working properly.

Also updated an include statement.
Added a file explaining the dynamic geometry code

I added a text file that explains how to use the new dynamic geometry
code and also how the algorithm works.
Renamed some variables for consistency.
Add warning if molecular displacement is too big.

Added a warning if the molecular displacement caused by dynamic
geometries is too big, although it's not entirely clear how big is too
big. Currently the comparison is done against l_r_bar, but maybe we can
come up with a better choice in the future.