+, -, and negation were easy. Multiplication is wacky because the Matrix class does it. So, to do binary * (not *=) I needed to dynamic_cast the resulting Matrix<4,1> to a Vector4&&.
Compiler was complaining about casting between Vector4 and Matrix<4,1> so I just did the division by hand.
I bet operator* and operator/ are broken for Vector4s as well...