Access attributes the canonical way

This makes sure attributes are accessed using `Nanoc::Item#[]`, e.g. `@item[:foo]` instead of `@item.attributes[:foo]`. This fixes the dependency tracking issues.