Genericised Point struct

Point now uses floats of any size