Build slug before check if no primary key

Fix #48.

The slug could be built earlier if the `uses_primary_key` is set to `false`.

Pros:
- Database query is saved. We don't need the primary key to generate the slug.
- We could perform validation on the generated slug and generally have it at
  the earliest possible time.
Use tabs instead of spaces in Sluggable behavior
Merge pull request #50 from OpenBuildings/sluggable-before-check

Build slug before check if no primary key