Removing the Item#autogenerate_item_ids? utility function
Removing the implementation specs in Item spec
Changing the way an item customizes its container

Cleaning up the code of container's item attributes modification.
Also changing the method name from `setup_container` to
`modify_container_attributes` to be more explicit.
Updating the Item specs to be more specific about the Item.new behavior.
Grouping SN.config calls for Item#autogenerated_item_id
Removing Item#selected_by_config? which is now useless
Replacing ItemAdapter#to_object with an OpenStruct
Moving the container modification logic in the ItemContainer

When creating an Item, if `container_id`, `container_class`,
`container_attributes` or `selected_class` are provided in options,
the Item would modify its own ItemContainer.

This commit moves this logic in ItemContainer itself. When adding
an item to a container using `item` or `items=` the logic will
be called the same way.

Creating a standalone Item shouldn't have side effects on its
container, only explicitly adding it to a container should have
this impact.
Removing Item dependency on SN spreading everywhere
Cleaning up the code
Updating the changelog
Merge pull request #161 from codeplant/item-refactoring

Item refactoring