Array#fill adapted from rubinius