Improve recursion checks for catalog items

* `catalog.createSpec` now passes the symbolicName of the item so resolving to items with the same symbolicName already in the catalogue is prevented (fallback to java types only).
* the recursion check was using the type as is, thus making it possible to recurse into items with the same symbolicName where version is explicitly specified. Explicitly forbid catalog items referencing same symbolicName items, even if with another version.
* stop catalog items whose symbolicName matches the java type they export leaking their bundles to callers.