Bug 5012 watch status transfer when merging

This fixes http://bugs.otrs.org/show_bug.cgi?id=5012

It has three commits:

1. Improve code quality on Ticket.pm so it passes OTRSCodePolicy
2. Move TicketWatcher tests to separate file
3. Fix the actual bug + added tests