use symbols as element type indicator instead of a string

Now we can use pattern matching for ScalarType, VectorType and
MatrixType to match real / complex entries, independently of the
representation in C/C++.