fix($compile): Major Memory Leak in Directive '&' attribute

Request Type: bug

How to reproduce: http://plnkr.co/edit/TW2TjC8JkxlDyQRCLcRg
Start on Home, click link for Leak directive, click link for Home page.
In chrome timeline force garbage collection.
Take heap snapshot. Despite being entirely gone from the page and no external references, directive is not GC'ed and because it contains a reference to it's parent, the parent is not collected either.

Component(s): $compile

Impact: large

Complexity: small

This issue is related to: a memory leak

**Detailed Description:**

When a directive is written using '&' reverse one way binding there is a major memory leak. 
when & attribute removed, leak is gone.

**Other Comments:**

For functions that have a '&' binding on the scope, change the function
from an inline definition to an external definition so the function
closure has no access to the parent scope.
Backport of fix on 1.3.x

Closes #6794