Use Type::Tiny for type checks

Hi.

I have re-instated type checking by using the (excellent) module [Type::Tiny](https://metacpan.org/pod/Type::Tiny). This module works both with Moo and Moose (as well as Mouse), so there is no limits here.

After adding the types, the unit tests failed because the use of "rwp" instead of "rw" on two attributes. This is fixed in the second commit. I think it's rather strange that this problem didn't occur before, the addition of a type shouldn't affect the accessors. Well, well, it was easy to fix.

The 'Worker' class were extending 'Object::Event', but I fail to see that really is necessary, so those are removed (commented away). As the tests works fine without it, I assume I'm right here.

BTW, there is changes to a number of blank lines in the commits. That's because I've configured Vim to remove any trailing whitespace. I didn't bother undoing all those changes before committing the other changes. I hope that's OK with you.