Improve record usability in domain objects.

This is still going to get refined, but here's a sample of usage in a
Rails app:

class AuthenticatingUser
  extend ActiveModel::Naming
  include ActiveModel::Conversion

  include Norm::RecordDelegator(User) # User is a Record

  attr_reader :password

  def to_model
    self
  end

  def self.model_name
    ActiveModel::Name.new(record_class)
  end

  def persisted?
    __record__.stored?
  end

  def initialize(attributes = {})
    super({}) do
      set(attributes)
    end
  end

  def self.authenticate(username, password)
    if user = UserRepository.new(self).with_username(username)
      user if BCrypt::Password.new(user.password_digest) == password
    end
  end

  def password=(unencrypted_password)
    @password = unencrypted_password
    self.password_digest = BCrypt::Password.create(unencrypted_password)
  end
end