Provides a non-mutating version of attr_accessor and attr_writer a la functional programming