Split assign_ticket() into two new functions

New function assign_ticket_with_validation() does all the sanity
checking and validation after the shell out to snot.

assign_ticket() now does not validate input and bases success
on the return code of snot.

There is a 1200 ms difference between these commands.