Optimize for constant running time

SumOfSquares now based on square pyramidal number formula.

Derivation for SquareOfSums:

The goal is to simplify:
(1 + 2 + 3 + ... + n)^2

It just so happens that (1 + 2 + 3 + ... + n) =
2(1 + 2 + 3 + .. + n) / 2 =
((n+1)+(n-1+2)+(n-2+3)+...+(n-1+2)+(n+1))/2 =
n(n+1)/2

Squaring that result:
(n(n+1)/2)^2 =
(4n^2 + 2n^3 + n^2) / 4

For the exponential operation, I multiplied n by itself, because I
didn't want to bother with converting to float64 with math.Pow