Added a miniboxed attempt :)

Final numbers:
```
[info] Benchmark                                       Mode  Samples        Score  Score error  Units
[info] r.VecMapBenchmark.squareDoubleArrayWithLoop    thrpt       20  1478640.429    78967.084  ops/s
[info] r.VecMapBenchmark.squareDoubleArrayWithMap     thrpt       20    71711.934     3269.255  ops/s
[info] r.VecMapBenchmark.squareDoubleVec              thrpt       20  1397215.415    17459.019  ops/s
```
and code:
```scala
package respec

final class Vec[@miniboxed T](elems: MbArray[T]) {
  def size: Int = elems.length
  def apply(i: Int): T = elems(i)
  def map[@miniboxed B](f: T => B): Vec[B] = {
    val a = MbArray.empty[B](elems.length)
    var i = 0
    while (i < elems.length) {
      a(i) = f(elems(i))
      i += 1
    }
    new Vec(a)
  }
}

object Vec {
  def apply[@miniboxed A](elems: Array[A]): Vec[A] = new Vec(MbArray.clone(elems))
}
```