Having the FixedVector2D implementation in the header means that half the engine has to be compiled again if one wants to change it.
Moving it to its own C++ file means it can be changed without having to do that.
Update: It also prevents inline optimizations, so don't move it.
This patch also adds static_cast conversions, a CompareLengthSquared function that is used in the RangeManager once (exemplary use) and tests.