Blink warning tabs

With CSS3 steps() timing function we can implement blinking borders on warning tabs with little processor overhead. Normal 'smooth' animations trigger way too many repaints on browsers resulting in insane cpu utilization. With stepped animation we only trigger one repaint per 2 seconds.
json response to update

We return a hash with the slide id, a message and the changes done.
http slide url validation

Previously the validation logic for the url in HttpSlide was spread all over the place, now we deal it in one place nice and tidy.
Note about httpslide improvement
Remove empty public_slides method
Move ticket system related code into a concern
Add kind to tickets

We add a column 'kind' to tickets to store the ticket type. The valid values are 'request', 'error' and 'notice'. 'request' is the default value.
Allow creating tickets on displays
Add ticket kind to list table
Add methods for dealing with error tickets
Store new errors in error tickets
Handle error messages

We now send the last error message in the websocket message when a display error gets reported.
Better handling for associated objects on tickets
Better handling on ticket object type