add .gitignore file
Ensure that postgresql is installed before editing its files

The implicit ordering between packages and files promises isn't
enough to ensure that CFEngine doesn't try to edit PostgreSQL
host-based authentication file before it's actually installed,
add an explicit depends_on for this file.
clean up redmine promise a little
Switch package_changes from bulk to individual for versioned gem package_methods

Ruby gem install doesn't like when you pass it more than one gem with its
version specified (or CFEngine doesn't pass the version correctly). To
work around this issue change package_changes to "individial" for
gem_versioned and gem_fuzzy_versioned.
Update ruby package_methods to work without user input
Fix database migration in redmine promise

Firstly, rake db:migrate doesn't work when rake is executed outside
of the rails project root. Write a custom db:absolute_migrate task that
works properly.

Also create a redmine_create_database bundle to explicitly force database
creation before we run rake db:absolute_migrate. Other ways of achieving
this effect I've tried:
  - setting a "database_created" class from databases promise (by using
    the classes => if_repaired("database_create") construct.
    + cf-promises accepts this, but a class is never set correctly.
  - using classes promise to set up the class explicitly based on a result
    of a command "psql --list |grep -q $(dbname)"
    + Doesn't work because psql --list has to be run as postgres user,
      and returnszero doesn't let us set the user.
  - Writing the same command as a module in the commands promise.
    + This one doesn't work because commands: is being executed once,
      before database is created and it's not being reexecuted at later
      passes.

The current solution isn't pretty, but it seems to be working correctly.
Make sure that the unicorn process for the instance is running