Mainly naming (also droping the `layer_collection` in favor of just `layer` for internal code, this is clear enough and much shorter). Add proper parent/child identifiers, `r_` prefix for parameters also used as return values, etc. Also made some parameters const.