Form::sign() shouldn't include 'label' fields. (mentioned in issue #998 part 1)
Merge pull request #1132 from koushki/bug/LabelInFormSign

Fixing FormSignature::check() when 'label' is added with form helper
Making form signature tests not depend on string algo.
Making `String::compare()` param order similar to `hash_equals()`.

This is the 1st step in replacing `String::compare()` with the native
`hash_equals()` in the future. It doesn't change behavior but makes
signature and documentation more similar.

- Changing order in which strings for comparison are passed
  to `String::compare()`.

- Also clarifying documentation to indicate which string must be user-supplied
  and which one is known.
Error if params are not string in String::compare; BC Break.
Use native hash_equals if available.