Supply cost attributes to M/O lazily

Values are wrapped in a block so they they can be computed only
as-needed by the Merit gem. Better performance and simpler testing.