Add allocate! which is a more rubyesque version of allocate

We still need both methods until all usages have been converted