Using a variable for ng-show-auth would fail

`ng-show-auth` was always expecting the value to be a string, this causes
problems if you want to dynamically build some items using, say, an `ng-repeat`.
Replaced the compile with a link (saw no explicit reason for the compile over
link in this function) and attempt to evaluate the value of the `ng-show-auth`
attribute. If this evaluates to undefined, we fall back to just using it as a
string, thus not breaking previous code using this method.

Alternatively a breaking change could be done by not allowing the fallback, but
instead requiring explicit strings as the attribute, such as:
`<a href="#/secret" ng-show-auth="'login'">Not For Your Eyes</a>`