Adding some timers
First step in merging sample_latent_vars with update_pi_for_node
merged sample_latent_vars with update_pi
Merge branch 'master' into performance-profile

Conflicts:
	c++/include/mcmc/learning/mcmc_sampler_stochastic.h
Merge branch 'master' into performance-profile

Conflicts:
	c++/include/mcmc/learning/mcmc_clsampler_stochastic.h

Removed calls to buggy np::find_le()
Merge branch 'master' into performance-profile
adding update_beta
Remove redundant operations
No need to copy ALL of Pi every iteration to OpenCL bufs
Don't copy theta to OpenCL every iteration
add find_le, xorshift, combined test/held out sets in OpenCL.
temporary switch in main
xorshift as rand() source in c++ Random class
on the fly random()/randint() calls in OpenCL. For verification: Patched C++ stochastic

to mirror kernel random calls. Neighbor sampling (temporarily) uses std::vector
to mirror OpenCL implementation and avoid ordering issues.
OpenCL to use hash table for node neighbors. C++ back to OrderedVectorSet
Merge branch 'master' into performance-profile

Conflicts:
	c++/include/mcmc/random.h
	c++/src/random.cc
Removing the extra timers
generate randn() calls [normal dist.] directly in OpenCL
Merge performance-profile into master
Merge branch 'performance-profile'