Featherweight Jigsaw: A Minimal Core Calculus for Modular Composition of Classes