Added Inner function and test

Is it worth explicitly calculating x' A y and using that as want rather than trusting that the literal is correct in the test data? I think it would make me more confident.

	x := NewDense(len(test.x), 1, test.x)
	m := NewDense(flatten(test.m))
	y := NewDense(1, len(test.y), 1, test.y)

	want := func() float64 {
		var a, b Dense
		a.Mul(x, m)
		b.Mul(&a, y)
		return b.At(0, 0)
	}
	got := Inner(x, m, y)

	if math.Abs(got-want) > 1e-14 {
		t.Errorf("Inner product mismatch case %v. Want: %v, Got: %v", i, want, got)
	}