as_complex_pattern converts Monomers

This prevents all constructors that depend on as_reaction_pattern
or as_complex_pattern to take MonomerPattern from throwing an error
when given a Monomer instead.

In particular, this resolves issue number #88, in which the Observable
constructor would error when a Monomer was used instead of a
MonomerPattern.
Wrapped integrate.py to 80 chars
Solver's call to lambdify specifies "numpy"

Previously, lambdify would use the built-in math module's
implementations of sympy functions (such as exponentiation)
which would fail when passed numpy arrays (such as the trajectories
resulting from observables. Specifying "numpy" in the call to lambdify
indicates that the numpy implementation of sympy functions are preferred.