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]

# Please enter the commit message for your changes. Lines starting
# with '#' will be kept; you may remove them yourself if you want to.
# An empty message aborts the commit.
#
# Date:      Sat Oct 11 19:22:02 2014 -0500
#
# On branch mat
# Changes to be committed:
#	modified:   Cargo.toml
#	new file:   macros/Cargo.toml
#	new file:   macros/src/lib.rs
#	modified:   src/lib.rs
#