Added DSL to collections. You can now declare the klass, sub_key and default_attributes. Backwards compatibility is supported even though it means initialize supports 1-3 parameters with two permutations of 2 parameters.
Added primary key DSL to frame.
Added missing block to frame. This block will execute if the value was not set on initialize. It is executed with the item as context, so it has access to all the other properties.