Labour win shock victory in Hamilton by-election defying bookies’ odds