modify.revert_to_revsible handles unsolved model

Previously, cobra.manipulation.modify.revert_to_reversible assumed the
model had been optimized as an irreversible model, and would fail if
optimize had not been called, or had been called when the model was
reversible.

This fixes #122
fix bug in mat->sbml translation

Reading in a mat model did not set the compartment, and writing an SBML
model would fail if compartment was None, causing the following code to
error out:

```
>>> import cobra.test
>>> cobra.io.write_sbml_model(cobra.io.load_matlab_model(cobra.test.ecoli_mat,
    "test.xml")
```

This commit fixes both issues and adds a unit test to ensure all model
loaders appropriately set the compartment.
all of cobra core passes pep8

This is mostly whitespace and other small chagnes, such as rearranging
unnecessary list comprehensions to loops.