fix(modal): Safer attribute parsing

Strings like `vertical flip` are invalid angular expressions, and should be
usable with Semantic-UI. So, the solution is to wrap $parse in try {} catch {}.

If the variable is meant to be an expression, the error is thrown because the
developer should know about this.

--------------------------------------------------------------------------------

To prevent double-transition glitches (which don't break anything but just look
funky), the isActive $watcher will not do anything if it's hit immediately after
an open/close.

This might introduce bugs in the future, I'm not sure yet.