make operators non-friend non-member functions
pass correct expression templates, don't cast to temporary

closes #2