Add benchmarks for Range literals and regular constructors
Use allocate + initialize path for Range.new

MRI also doesn't call Range.new, it doesn't even call Range#initialize.
So this change doesn't break anything in that sense and would still
allow a custom initialize if people would want to hack stuff.

Fixes #2214