New types for face and vertex, plus refactoring. Add a test?

I've split out the functionality among multiple files, as seems to be the emerging convention for Julia packages. In the process I've also decided to take advantage of the new immutable types feature and now Vertex and Face are immutable types, and no longer tuples.

I've attempted to update your I/O code to conform (which no resides in src/io.jl), but could you check that I did so correctly? Also, it would be great if you could provide a test for this functionality in the test directory.

Thanks for your contribution.

BTW, could you point me at a spec for the .2dm format? (Mostly just curious.)