Adding a neighbour list to Crixus

The boundary elements are now sorted according to the grid cell they are
in and the boundary elements of a grid cell can be accessed directly
using the cell_idx array
Replacing loops over nbe with the neighbour list loop

Several old optimizations are no longer necessary or are even bad for
performance so they were removed. Among them coarse geometries no longer
make sense and the last pieces of it were removed. Furthermore boundary
elements are no longer discarded if a fluid box is present. Finally, in
the first filling iteration the direct line of sight from the seed point
is no longer checked if it makes sense for filling.
Renaming the error to warning as we simply disable that segment