Lineal: A linear-algebraic Lambda-calculus (Logical Methods in Computer Science, 2017)