Package Layering for Java based on Subtype Dependencies