Refactor: Moved material origin interpolation into Surface

Also fixed a few issues with the implementation and took advantage
of the new features in de::Vector2<>.