Core: Refactor BoxEdges; remove protected members and make truly immutable.