Start to restructure layer into

1) per-run layer parameters
2) per-thread layer state (activity, error)
3) per-node shared model state (weights, biases and momenta)
Fix typo.
Fix typo.
Work in progress to rewrite NN.
More work done, but still not finished.
Add method to ConfusionMatrix to populate a Stringbuilder with ASCII rendition
of the CM, and use it in GBMTest.
Added proper handling for categorical variables for scoring. Now need to make
the NN algorithm do the correct thing...
Return classification error in Confusion Matrix ASCII method, for convenience.
Fix memory leak in Confusion Matrix ASCII printer method.
Cleanup, fixes for memory leaks, reorganization for improved modularity.
Add a new version of the Iris NN Reference test for the new Neural Net
implementation.  Fails currently.
Add a method to streamline the Frame preparation for FrameTask.
Code cleanup: Use new method for Frame preparation for FrameTask.
Various code cleanup and bug fixes in NN.
Merge branch 'master' into arno-deeplearning2

Conflicts:
	src/main/java/hex/gbm/GBM.java
	src/main/java/water/util/Utils.java
	src/test/java/hex/gbm/GBMTest.java
Merge branch 'master' into arno-deeplearning2
Add alignment code, thanks Michal
Commit useful debug code for DKV.put to track leaked keys.  Commented out.
Fix memory leak.  Was assigning vec = vec.toEnum(), but should have called
frame.add(name, frame.remove(i).toEnum()), such that the frame still maintained
ownership of the key.
Fix memory leak in NN, as detected by Iris Junit test.