Unify cattr and mattr accessors declarations

Their definitions (and tests) were mostly identical. The one difference I found, which I believe was coincidental, is that `cattr_writer` accepted a block, while `mattr_writer` didn't.

I have unified their declarations into `core_ext/module/attribute_accessors` and their tests into `core_ext/module/attribute_accessor_test.rb`. I have redirected `core_ext/class/attribute_accessors`, so the existing contracts should be fine.