Sereal::Encoder Tests: add more evil tests for warn_unknown => -1

Add the tests I initially meant to add to t/400_evil.t. We should also
document that the warn_unknown option only does what you mean if we
encounter an unknown object AND *that* can't be serialized and *that*
object has a string overload.

It does not work for cases like what I'm doing with
Blessed::Sub::With::Lazy::Overload where we actually have a blesser
ArrayRef that has an overload that calls a subroutine that's one its
array elements.

So Sereal can't be used to emulate the idiom of having an object with
a STORABLE_freeze method. Ways to deal with porting code like that
include:

 1. Having a pre-processor that walks the structure you're wanting to
    Serialize and call every STORABLE_freeze on objects that
    ->can("STORABLE_freeze") (ew!)

 2. Having something similar except try to stringify objects you
    encounter, checking if the stringified output looks different from
    something that doesn't have an overload, and if so keep that (even
    more ew!)

 3. Implement something like SEREAL_freeze in Sereal::Encoder
    itself (mega ew!)

 4. Do that except have a callback mechanism for specific types, say
    objects, pretty much what you get with #2 except Sereal would
    support it. This sucks even more, better to just make it another
    module.

 5. Just emit errors on stuff we can't serialize and make damn sure we
    don't have objects whose blessed structures contain a sub that'll
    be called on stringification.

    For migration purposes you could try to encode with Sereal but
    fallback to Storable if you can't encode something.