Factor out coupling to MooseVariable * 

Addresses the "high risk" part of #4441.

Mostly this change just adds an additional API call to couple to a variable by providing a ````MooseVariable *``` rather than an _input parameter name_ and a _coupling component_.

The main behavioural change is in the ```coupledCallback``` for ```AuxKernel```, which now just decouples the variable we are coupling to _now_, not _all_ coupled components. This is how it should be IMO.