Modified read_nbody to optionally download halo catalog
Modified simulation class of read_nbody to be more modular
Modified read_nbody to include container class for simulation particles
Merge remote-tracking branch 'upstream/develop' into develop.

From Pull request #2, @duncandc. Updates to observables calculation.
Modified configuration.py. Fixed vdB03 quenching model. Fixed HOD_mock.

Still inching with baby steps towards a de-bugged HOD_Mock class. vdB03 is still poorly tested.
HOD_Mock still needs many minor modifications to flexibly work with all HOD types.

Configuration.py and read_nbody.py will need to be changed after Erik replies with
instructions for how to correctly use the astropy utils module.
I have left broken HOD_Mock broken. Getting this module running with all the ho models is the priority.

Important experiment: creating a very large (Npts = 1e7)
numpy structured array is only marginally more expensive (2.e-5 seconds)
than creating a naked ndarray (1.e-5 seconds).
So I think the mock object should have a galaxies array
attached to it after all. If this can be implemented, it will dramatically simplify future
bookkeeping, such as mock shuffling routines. Needs to be played around with
to see if this is actually possible.

Note that the same is not true for an astropy table, which takes about 1000 times slower
to instantiate (0.02 seconds).
make_mocks is in a sound state to revert to, though does not have the correct functionality
Modified API so that halo_type arrays are used by HOD_Mock.

Now every halo occupation model requires two inputs: a primary halo property, and a halo type.
For traditional HOD models like Zheng's, the halo type is simply ignored.

The HOD_Mock class now creates a bunch of redundant arrays, since I haven't figured out
how I want to store halo catalog information simultaneously with mock galaxy population information.
Example: mock.halos['PRIMARY_HALO_PROPERTY'] is identical to mock.primary_halo_property.
Cleaned up call to simulation object so that default arguments are specified in defaults module
Coded up halo_type_calculator method of halo_occupation. Looks right. Still needs test suite implementation.
Continuing to develop make_mocks to be able to create an assembly-biased mock.

I have been going through and using the newly written halo_type_calculator
to assign halo types to host halos, in the event that a secondary halo property
key is not None.

Now the API is such that
even for simple Zheng07 type models, mean_ncen and mean_nsat and mean_concentration must
be called with primary_halo_property and halo_type input arrays. This is old news, but
I am still finding places where the baseline hod model tries to call one of its functions
with only primary_halo_property.

In general, I am still overhauling the way that the mock object accesses the halo catalog
and galaxy catalog. I have settled on an astropy table for mock.halos, but
I'm pretty sure I need to create a structured ndarray for the galaxies. This is now the point of focus.
Minor changes to HOD_mock._setup. Getting very close to a complete implementation of assembias.
Relaxed Parejko requirement that satellites have a central. Not positive this is a bug-free move, but it appears to be kosher.
It appears as if a fully general assembly biased model passes the non-trivial occupation test. WHO DAT.
Merge pull request #3 from aphearin/develop

Develop