Added replicate() command to system_data

This is a nice feature that takes a system data and replicates it a number
of times along specified spatial directions. Bonded groups are handled
in a clever way (due to LAMMPS) by using the image flags to unwrap molecules
before replicating them. All particle properties such as velocities etc.
are replicated. Rigid bodies are not supported.
Print notice message when group.all() is updated
Fixed bug in replication of molcules

(still need to write a unit test to check bond lengths after replication)
Merge branch 'master' into replicate
Enabled optional reading of XML files with positions that are out of the box

This is possible by setting wrap_coordinates=False as option to init.read_xml()

Cell list will still throw an error when one attemps to run the simulation,
but this allows the user to fix the coordinates using data access methods
Extended data.boxdim: Enable wrapping of coordinates and querying lattice vectors
Made sure that replicate() command works with exclusions set
Merge branch 'replicate' of https://codeblue.umich.edu/git/hoomd-blue into replicate
Added extra safety for data structure consistency
Merge branch 'master' into replicate
Documented limitations of replicate()
Correctly re-initialize exclusions after replicate()

refs #2790
Merge branch 'out_of_box_xml' into extend_boxdim
Doc error: Updating box doc and example to calculate tilt factor yz, instead of |yz|.
Merge branch 'master' into extend_boxdim
Added unit tests for new boxdim features
Forgot to remove file in unit test
Merge branch 'master' into replicate
Fixed MPI communication of tags on CPU

the bug manifested itself in simulations with bonds crashing
Fixed replicate python command