Feature io particles update

@nathanfranklin  This is a PR against your branch with my suggested changes.

in more details
- Use the tempfile module to avoid polluting the local directory when running tests and benchmarks (especially when tests fail).
- Rework the bench-marking code to better separate the code that is benchmarked.
- Update the FileParticleContainer to use some more pythonic constructs (let me know if you like the `for... else` block :P)
- Change all queries to using the `where` (it looks that it is the fastest of the alternative methods)
- Use the `condvars` option for `where` it looks that it gives around ~30% speadup.
- Use the table `append` instead of appending using the iterator. Gives a little bit of speed up.


**Note**: I gave up on the requirements file. 
Here (and in update_bond), you mean another issue and not #8, right?  This new issue will address proposed additional batch operations so that the use of flush will be minimized when adding multiple particles/bonds.