Maxcolnorm Factorout and citation #405 

I've decided to make a new and cleaner PR.

Mainly this PR is for the issues #277 and #190.

Ian's comment about the previous PR : 

''' This doesn't really fulfill the ticket. The various classes shouldn't need to check "if max_col_norm", assemble a dimshuffle pattern, etc. That logic should be factored out so that all they need to do is call some apply_constraints_ method defined in the base Layer class.'''