Inline hashString definition
Inline hashString definition

Calculating FNV-1a hashes directly is much faster than using hash/fnv.
The latter incurs quite a bit of overhead with function calls and
interface method calls.

This change, along with a similar change to ps.Map and using 8
children per node in ps.Map gives these benchmarks:

    True                    8960 ns/op  -13%
    Append                226110 ns/op  -24%
    UnifyDeep               5408 ns/op  -30%
    UnifyDeepFail            943 ns/op    0%
    UnificationHash         6008 ns/op  -39%
    Maplist               689623 ns/op  -25%
    NaiveReverse        46854060 ns/op  -57%
    DCGish                 65446 ns/op  -11%
    Read                  110958 ns/op  - 8%

This timing for NaiveReverse implies 10,500 inferences per second.

mndrix/golog,bransorem/golog,bransorem/golog,mndrix/golog,samuell/golog,vzaramel/golog,samuell/golog,vzaramel/golog