add ``site-ranges`` to low-level systems and Builder finalization
This allows low-level systems to access the number of orbitals associated with each site, as well as the offset of the orbitals of each site.
Each of these operations has complexity O(log n)
where n
is the number of site ranges in the system.
When there is only 1 site family in the system n
is one, but as soon as there are 2 site families it can be
as many as the number of sites in the system (if the sites are ordered lat1, lat2, lat1, etc.).
This format will become much more efficient once !23 (merged) is merged, as then the sites will be ordered by site family first.