sf/behaviour refactor

This is a rebased version of sd/behaviour-refactor with the signature fixups related to https://github.com/opscode/chef_db/pull/43

/cc @sdelano @oferrigni @hosh