Merge pull request #1 from non/topic/polynomials

Topic/polynomials
Merge pull request #2 from non/topic/polynomials

Remove .DS_Store files
Benchmark problem fixed

Implemented private lazy val _degree: Int in PolyDense and PolySparse
Fixed issue with benchmark as a result of _degree incorrect
implementation
Tidied up Polynomial companion object methods
Merge pull request #151 from jamesthompson/topic/polynomials

Polynomials Benchmark Issue Fixed
Infinite set examples.

Here are two interesting Set implementations that give up the ability
to act as containers in exchange for the ability to represent infinite
sets.

MathSet is more conservative: it represents either an explicit, finite
set of elements, or an implicit universe with an explicit, finite set
of elements removed.

PureSet basically just reifies A => Boolean as a set. As such, it has
no idea which members (if any) it contains. However, this also makes
it easy to define operations like cartesian product.

Both sets have some methods that require a universe value, specifying
the list of all possible members of the set.
Added cforRange and cforRange2

These macros are a bit nicer to use than cfor, although they are also
less flexible. The basic idea is:

    cforRange(0 until 100 by 4) { i =>
      ...
    }

becomes:

    var i = 0
    while (i < 100) {
      ...
      i += 4
    }

The following kinds of ranges are supported:

    start until limit
    start until limit by step
    start to end
    start to end by step

Non-literal ranges are also supported, but will issue a warning, since
they can be slower. The warning may need to be removed, we'll see.

The cforRange2 macro is similar:

    cforRange2(1 to 5, 2 to 4) { (i, j) =>
      ...
    }

becomes:

    cforRange(1 to 5) { i =>
      cforRange(2 to 4) { j =>
        ...
      }
    }

and then:

    var i = 1
    while (i <= 5) {
      var j = 2
      while (j <= 4) {
        ...
        j += 1
      }
      i += 1
    }

That's all there is to it.

Conflicts:
	core/src/main/scala/spire/syntax/Syntax.scala
Merge remote-tracking branch 'upstream/master' into topic/array-sparse-poly

Conflicts:
	core/src/main/scala/spire/math/Polynomial.scala
	core/src/main/scala/spire/math/poly/PolyDense.scala
	core/src/main/scala/spire/math/poly/PolySparse.scala