Using observer to update package information

- Observer can update package information
- Observer can create unique slug for pretty URL
- Reading package use slug instead of package ID as identifier
- Home page use slug URL in content table