proposed conversion from u_kln->u_kn formalism

includes a slightly modified harmonic_oscillator_update.py, which gives identical behavior with the new code to pymbar-examples/harmonic_oscillator.py run with the previous code up to numerical precision.

This new code automatically converts from old-style u_kln matrices internally.  

It supports all existing functionality, including updating the weave code and the _pymbar.c code.

The one major difference is in handling computeExpectations.  This change hopefully provides a much more general solution which can possibly reduce the total amount of repetitive code as well. 

Previously, computeExpectations recognized whether observables were state_dependent or state_independent by whether the observable array was KxN_max, or KxLxN_max.  Now, this is done by giving an explicit state_dependent flag.  If state_dependent is False, computeExpectations handles the code like the 2D version before (although now the array is 1D, the observable at each state). 
The big difference is if state_dependent is True.  In this case, computeExpectations expects K different observables (the K different observables at each state - for example, the potential energies in each of the K states), as well as K different energies (which defaults to just the u_kn matrix MBAR was generated with).  It then calculates the expectations of the first observable and the first state, 2nd observable and the 2nd state, and so forth, which is what the previous code did.

In order to make this happen, I've created a computeGeneralExpectations routine, that takes in I observable arrays and K state observables (see see #89 ).

I'm up for lots of other improvements; but I though it would be easier to start by solving the biggest problem first independently of other issues.