Convolution basic implementation

Hi David et al.,

I am working on programming in basic FIR filter capabilities, and have finished the basics of a convolve() function for DenseVector[Double], with unit tests. I need input on option handling before I get too deep in filling out the code...

I've implemented an overhang option like this, with an option object:
`def convolve[Input, Output](kernel: Input, data: Input, overhangOpt: OverhangOpt = OverhangOpt.Default())
                             (implicit canConvolve: CanConvolve[Input, Output]): Output`

`abstract class OverhangOpt
object OverhangOpt{
   case class Default() extends OverhangOpt
   case class Sequence(k: (Integer, Integer)) extends OverhangOpt
   case class Integer(k: Integer) extends OverhangOpt
}`

Is this along the lines of what you meant, David, when you were discussing how to handle options?
(https://groups.google.com/forum/#!topic/scala-breeze/o7A49ZYP1kg)