[MLLIB] [PYTHON] SPARK-4221: Expose nonnegative ALS in the python API

SPARK-1553 added alternating nonnegative least squares to MLLib, however it's not possible to access it via the python API.  This pull request resolves that.

Let's use setters so we don't need to add many static methods.

~~~
val als = new ALS()
  .setRank(rank)
  .setIterations(iterations)
  .setLambda(lambda)
  .setBlocks(blocks)
  .setNonnegative(nonnegative)
if (seed != null) als.setSeed(seed)
val model =  als.run(ratings.rdd)
new MatrixFactorizationModelWrapper(model)
~~~