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)
Cleaning up some warnings / errors on testing
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
fix pickle/copy issues with some component types

Always set _export=False in the pickle protocol methods __getstate__ and
__getnewargs__, which will keep SelfExport.export from being called on
the objects upon reinstantiation. Also, it actually seems wrong to re-export
such reinstantiated objects unconditionally anyway -- leave it to higher-level
code to make that decision.
enable suppression of ModelExistsWarning from doctests
Removed calls to allow 'None' as product of catalysis
Undoing
Removing calls to allow substrate or product to be 'None'