Web UI

### New util: inflector

- `pluralize(str)`
- `singularize(str)`
- `camelize(str, uppercase)`
- `underscore(str)`
- `humanize(str)`
- `startcase(str)`
- `titleize(str)` *(Alias: titlecase)*
- `tableize(str)`
- `classify(str)`
- `dasherize(str)`
- `parameterize(str, sep)`
- `foreignKey(str)` *(Alias: foreign_key)*
- `ordinal(str)`
- `ordinalize(str)`

### Server API

API base URL: `_/api`

**token**

- [x] POST token
- [x] DELETE token/:id

**posts**

- [x] GET posts
- [ ] POST posts
- [x] GET posts/:id
- [ ] PUT posts/:id
- [ ] DELETE posts/:id
- [ ] POST posts/preview

**pages**

- [ ] GET pages
- [ ] POST pages
- [ ] GET pages/:id
- [ ] PUT pages/:id
- [ ] DELETE pages/:id

**categories**

- [ ] GET categories
- [ ] POST categories
- [ ] GET categories/:id
- [ ] PUT categories/:id
- [ ] DELETE categories/:id

**tags**

- [ ] GET tags
- [ ] POST tags
- [ ] GET tags/:id
- [ ] PUT tags/:id
- [ ] DELETE tags/:id