Pad left right

Could you take a quick look, especially at [the test class](https://github.com/ktakagaki/breeze/blob/e24f057e7d27e32310eed1aa02bcd722cb7a5f33/src/test/scala/breeze/linalg/functions/padTest.scala) to see if you agree with the syntax? 

I couldn't use UFunc, because it already uses implicits in its implementation... I guess double implicits are not allowed, right? So the option arguments cannot be implicitly inferred (e.g.  n: Int => OptPadDimensions.Dimensions1( n ) )

Maybe I'm confused, but padding DenseVectors in 2 dimensions to a DenseMatrix is particularly hard, especially if one tries to think ahead to n-dimensions.

Thanks