Add 'coder' to allow attributes encryption

AR allows to serlialize and deserialize any attribute with usage of any
arbitrary 'coder', which can be any object that responds to :load and
:dump. This commit introduces Travis::Model::EncryptedColumn, which
allows to pass an instance to serialize method and enable encryption for
given column.

Its usage is simple:

    class MyModel < ActiveRecord::Base
      serialize :secret_column, EncryptedColumn.new
    end

The implementation allows us to migrate the database without worrying
about the time of migration. EncryptedColumn by default uses the 8 byte
 prefix '--ENCR--' which is added to any encrypted string. This allows
us to distinguish between encrypted and decrypted data and as a
consequence we can handle both encrypted and unencrypted data.

When prefix is disabled, EncryptedColumn will not add the prefix after
encryption, but it will check for it while decrypting. Thanks to that,
we can disable the prefix after all the data is migrated and any new
data will be saved without prefix.

The encryption itself uses AES256 with CFB cipher, which works best with
randomized IV. IV should be regenerated for every encrypted value and
it should be fine to attach IV to the encrypted value before putting it
into DB.
Store db encryption key in config
Use prefix in encrypted columns by default
Encrypt critical data
Connect to the DB and start feature when running rails console
Encode encrypted data with base64 to avoid UTF-8 DB errors

Encrypted data sometimes produce output that can't be saved in the
database, thus we need to encode it. I used strict_encode64 to save a
few chars on newlines.
Set default encryption key on development
Don't encrypt or decrypt empty data
Search with encrypted token as well when authenticating
Merge branch 'ps-db-encryption'