Add experiment models

Single table inheritance was chosen since `type` was specified as a
required attribute on the `experiments` table. This makes it easy to
define behavior on typed models later, for example adding special class
or instance methods to FieldExperiment or LabExperiment, while still
having all experiments live in a single table. We get the benefit of not
having to define multiple validations on each type, such as enforcing
unique names across all experiments, regardless of type.
Simplify example database configuration
Add configuration options for seed_fu

Seed_fu gives us an easy way to define seeds, samples, and fixtures that
won't pollute the database with multiple copies of the same
information. This change benefits us in the following ways:

  - `samples` can contain seed_fu-compatible files for local
    development, and will be loaded in development only.
  - `seeds` can contain seed_fu-compatible files for getting a
    production database ready to be used.
Move seed files to appropriate directory reflecting seed_fu change
Cleanup user model and profiles

- Combine validations
- Move devise to bottom to focus on relationships and validations
Fix deprecation warning from having unspecified locales
Create categories for experiments

- Audit trail
- Simple join table is good, as @mfreer suggested
- Include indexes on join
Add roles through STI on users

- Create STI relationship for user roles
- Generate predicates for checking user role

Note: By using STI we have to keep in mind two things that Rails will no
longer take care of. First, we have to manually update the type attribute
on objects when the type changes from User. Second, we need to update
the object in-memory by using User.becomes(Experimenter), for example.
If we assign types upon user creation, this won't be necessary. For
example, using Experimenter.new(...) instead of User.new(...).
Add method to retrieve user name
Create sessions and labs

I was torn between implementing Labs as a join table for experiments and
sessions and just using separate associations. I think labs do represent
a relationship between sessions and experiments, but I speculated that
this sort of association might be more flexible in the future.
Add suspended and active columns to user

- Suspended indicates an administrative action was taken, perhaps due to
continued absence
- Active indicates a user wishes to receive experiment invitations,
and may be reset between semesters by administrators
Fix build error caused by seed-fu expecting RAILS_ENV to be set
Remove unused dependencies
Merge pull request #19 from jrhorn424/feature/jrh-models

Feature/jrh models