move initialization parts to individual methods

This creates a preinitialize method which is used to apply the role policy.
Also there is a postinitialize method which is used to apply the roles to
the role players.

This allows you to more easily write your own initialize method.

If you don't want to do the class-level shortcut:

    class SomeContext
      initialize(:first, :second, :third)
    end

Then you'll have an easier time by only needing to use the map_roles method:

    class SomeContext
      def initialize(first, second, third)
        map_roles([[:first, first], [:other, second]])
        @third = third
      end
      attr_reader :third
    end

This allows you to initialize the way you like but skip mapping roles for
certain arguments if you need to.
bump the version for updates