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.