Removed the gotos from upnp_device.c

Don't know if this will appeal to you, but let's give it a try.

I've pulled out the payload/paywork from the resource allocation/deallocation logic.

My personal _preference_ (yours may be different) is to allocate required resources, call for someone else to do the real work and when I know the outcome of that, I deal with freeing resources.

If I fail to allocate the resources, I can easily bail out.
If the real pay-work fails, I'll know about it and I can deal with it.

No more gotos. :-)

I think this diff is hard to read. Kinda out of sequence. You may or may not want to use your printer before deciding how to deal with my proposal.