variable item types

Instead of allowing only two fixed item types, `lib` and `app`, create an expandable and customizable system which allows the site maintainer to define new types at any time.

## Todo:
- [ ] add a method to get a list of supported tags
- [ ] testing