AMQP-332 Fix Multiple Listeners with Id

Previously, if the parent <listener-container/> element
was given an Id, and multiple <listener/> elements existed
only one listener container bean was defined - the parent
element Id was used for the bean name.

- Use the child element id if present
- Disallow multiple child elements with the same id
- If a single child element has no id, use the parent
- If multiple elements with the same id exist, use the parent id + '#n'.

Polishing

The anonymous parent case didn't work. Since the generated
bean name was never registered, two or more anonymous listener-container
elements got the same generated name, causing collisions.

Generate the anonymous name internally.

For the test case, reset the instance variable for each test.

JIRA: https://jira.springsource.org/browse/AMQP-332