refactor(mat!): convert mat! into a syntax extension

The new `mat!` expansion does much less work at runtime.

If you were using the `mat!` macro, you'll have to change your crate linking
from:

```
#[phase(link, plugin)]
extern crate linalg;
```

to

```
extern crate linalg;
#[phase(plugin)]
extern crate linalg_macros;
```

[breaking-change]