Ordering Support via options.beforeId

I think that is reasonable. I'll update it when I next have time.

Regarding the value of the header, `"top"` and `"bottom"` have been somewhat confusing for me. I often picture JS arrays as stacks in which case `"top"` is the end of the array rather than the the beginning. If it is just me, I can get over it, but I wonder if others may experience the same confusion. Some alternative terms are head/tail, start/end, beginning/end. Any thoughts?