agent: Declare the stream to be CONNECTED only if a pair is selected

Don't change the state if no pair is selected. Otherwise we get
a component that claims to be CONNECTED but has no selected pair.
Also, set the selected pair before announcing the state change.
agent: Remove socket source on HUP
outputstream: Fix double unref
build: Update .gitignore
agent: Add some preconditions to public API

To try and avoid NULL NiceCandidates entering our internal state.
component: On ICE restart reset selected pair priority to 0

This is to ensure that the result of the new negotiation will always
have priority.
agent: Ignore UPnP mappings after the UPnP discovery has finished
agent: Avoid restarting the GUPnP client on every gather

This would cause mappings to be dropped on every new gather, which is bad!
Instead, keep the same one with the mappings, and just drop the timer to ignore
new discovered mappings afterwards.
agent: Avoid leaking UPnP mappings between streams

Clean up the UPnP mappings of each stream when closing it
conncheck: Don't remove elements in the conncheck list while iterating it

priv_limit_conn_check_list_size() would remove elemtns from the conncheck_list
while the calling functions were iterating it. Now instead just mark them as
cancelled. Then later, at the outer function, free all cancelled elements to
prevent the list from growing out of bounds.
conncheck: Insert peer reflexive pair sorted

The rest of the list is sorted, but this was just appended, making it likely
to be dropped if the list grows too long.
conncheck: Insert the candidates sorted after setting the priority
agent: Only add pairs once on gathering done

Also don't try to re-add pairs that already have been added
discovery: Remove extra \n in g_debug()
conncheck: Computer STUN retransmission timeout (RTO) dynamically

This is how it is specified in RFC 5245 section 16
pseudotcp: Set default RTO to 1 second

The newer RFC 6298 recommends 1 second instead of 3.
agent: Make the stun-pacing-timer app configurable

There is no reason to only allow modifying it in the new().
agent: Add function to retrieve the current component state
pseudotcp: Print unsigned int with %u not %d
agent: Re-emit gathering done after a new relay has been set

If the stream was ever gathering and a new relay has been set,
then re-emit the candidate=gathering-done signal