Neural Network class with backpropagation, arbitrary layers/hidden units, and completely vectorized for efficiency