made boundary_conditions.pyx a cython file
moved boundary condition cython declarations to boundary_conditions.pxd
moved lw_vector cython declaration out of lattice.pxd
fixing up the boundary condition tests
use python's multiple-comparison operator syntax
fixed a super() call in CustomEncoder
boundary conditions in python now directly wrap the C++ objects
replaced some manual memory management with an auto_ptr
simplified and generalized Lattice.enforce_boundary() based on the recent boundary condition refactor
updated docstring for Lattice.enforce_boundary()