System E: Expansion Variables for Flexible Typing with Linear and Non-linear Types and Intersection Types