improve exception message for ComponentSet.index
start to implement an Expression class
finished initial Expression support
use inline-defined macros to access numpy arrays in rhs
fix test_model_pickle test failure by using _export=False
change ComponentSet repr to use components' repr instead of str

(fixes issue where components that now subclass sympy.Symbol were repr'ing
as just their name, which is Symbol's repr implementation)
fix some doctests that broke as a result of the Expression changes
renamed bng wiki sample models and switched egfr example to a more complex one
use more explicit sympy constructors rather than relying on sympify

(this fixed an issued where a parameter name like 'deg' would be interpreted
as a special function or the like, rather than a symbol)
make bng generator handle models with expressions but no parameters

(odd, but possible)
support expressions that reference observables
Substitute passed-in param values for expr evaluation
Added getnewargs methods to Parameter, Observable, & Expression

This fixes pickling errors in which new was getting called with
_export=True (the default value) which ultimately resulted in an error
from the SelfExporter because due to its being called with no default
model.

This should fix the problem of unpickling models which have been built
programmatically with all component with _export=False; it may still
lead to errors when unpickling models built using the SelfExporter.
fixed and improved test_model_pickle