feat($StateRefDirective) add compatibility for angular/material material-button directive

I'm using angular/material and noticed that their `material-button` directive was not playing nicely with `ui-sref`. If `material-button` has an `href` attribute, it adds an inner `<a>` tag, but if it does not, it adss an inner `<button>` tag.

In order to get this to work with ui-router's `ui-sref`, the `$StateRefDirective` directive needs a higher priority than `material-button` and some functionality needs to be moved to the `compile` and `preLink` phases so that the `href` gets applied before `maerial-button` compiles.