Exposed missing public IvyPatternRepositoryLayout API

- Documents the existing API and allows using it from java clients without reaching out to private API.
- Introduces new public interfaces and a method. I didn't mark them @Incubating because they document the existing (non-incubating) API.
- JavaScript repositories extension can now use public api to extend the repos.
- Let me know if this change is ok.