Structures can no longer have no arguments - see #40

When structures could have 0 arguments, to differentiate them from atoms
(which also have no arguments) the value of "number of arguments" for
PredicateKey instances representing atoms was -1 - this can now be
changed to be 0