Updated id-usage

Ids are managed by high-level object (ParticlesContainer). Ids
for bonds and particles defaults to None.  When a bond or particle
without an id (i.e. None) is addeded to the ParticlesContainer,
, then an id is generated for the bond/particle (and this id is returned).
If the bond or particle has an id, then that id is used by the
ParticlesContainer.
Fixing remove methods

Adding unit tests for remove methods.  Also adding workaround
for when we remove all the particles or bonds from our particle
container as pytables throws an exception (NotImplementedError)
 if we remove all rows from a table ("You are trying to
delete all the rows in a table" ... "This is not
supported right now due to limitations on the underlying HDF5 library.
Sorry!"). So in such cases, instead of removing the last row
of the table, we remove the old table and create a new one.
Merge branch 'feature-io-particles' of github-IWM:simphony/simphony-common into feature-io-particles