Added DoubleFactor class and test.  Included a test for copying Factors ...

...in FactorTest
You could also make DoubleFactor a
```scala
implicit class DoubleFactor(val fact: Factor[Double]) extends AnyVal {
...
}
```
The ```implicit class``` allows the compiler to implicitly create an instance of the class when one of its methods gets called and the ```extends AnyVal``` makes the compiler not use an explicit Wrapper which saves you memory and one indirection when calling methods.