Improvements on how SRL_MAGIC_STRING_HIGHBIT is handled.

This makes the following changes:

1. looks_like_sereal() and decode_sereal() now share
magic string validation logic.

2. protocol v1 and v2 require the old SRL_MAGIC_STRING magic header
(or else old decoders could not decode "new" protocol v1 output)

3. protocol v3 and later require the new SRL_MAGIC_STRING_HIGHBIT header

4. looks_like_sereal() now returns the version of the document
if it is believed to be Sereal, returns the number 0 when the document
looks like it is utf8 encoded, and returns perl FALSE (PL_sv_no) when
the document does not look like Sereal at all.

5. Changes the error message when trying to decode a document which
does not look like Sereal.

6. Renames SRL_MAGIC_STRING_LILIPUTIAN to SRL_MAGIC_STRING_UINT_LE,
the old name was a bit silly.
Remove unused code and silence compiler warning.
In this case treate CANONICAL_UNDEF the same as UNDEF

(This shouldn't make a practical difference.)
Fixup macro so it takes the right number of arguments.