Added FourVector class and other changes

I've been a fool and not committed as I went. Therefore this commit has a lot of changes!