added new script

this performs basic metadata addition, but doesn't perform any special handling of taxonomy. we want this to split taxonomy on semi-colons, and eventually we'll want the user to be able to specify more complex processing of each metadata entry.
Added support for empty rows in COO -> CSR conversion. Still needs some more testing and support for other conversions.
Reordered several methods in CSMat to make the class better organized (logically) and removed erase() method as it is unnecessary. Updated a few docstrings.
Added support for empty columns in CSC format. Added tests for COO -> CSC. More testing is still needed for various other CSMat methods, and we need to remove special-case code for completely empty matrices as CSR/CSC should now handle these.
Added tests for _expand_compressed() for empty rows/cols/matrices.
Added tests for CSMat.getCol().
added new script

this performs basic metadata addition, but doesn't perform any special handling of taxonomy. we want this to split taxonomy on semi-colons, and eventually we'll want the user to be able to specify more complex processing of each metadata entry.
Removed all remaining special-case checks for empty matrices. Added tests for all possible sparse format conversions (e.g. CSR -> CSC, CSC -> COO, etc.).
parse_mapping takes process_fns variable

parse_mapping now takes a new value, process_fns. process_fns is a dictionary of functions to apply to metadata categories. The keys should be the column headings, and the values should be functions which take a single value. For example, if the values in a column called "taxonomy" should be split on semi-colons before being added as metadata, and all other columns should be left as-is, process_fns should be:
      {'taxonomy': lambda x: x.split(';')}

This is being added specifically for the taxonomy use-case, but could also be useful in the future for type-casting values, etc.
added special handling of taxonomy

first pass for testing - will want to generalize this functionality a bit before merge.
generalized semi-colon splitting functionality

users can now pass the list of fields with data that should be split on semi-colons, and defaults to 'taxonomy', if provided.
updated documentation.
Fixed bugs in transpose() and __equal__() methods. Added more tests.
Added remaining unit tests where appropriate. Added a few missing calls to absorbUpdates() to some methods that needed it.
parse_mapping allows users to override column headers

Users can now optionally pass a header list to parse_mapping. This is useful if a header line is not provided with the metadata, if users want to rename the fields, or if users want to include only the first n-1 fields where n is the number of headers provided (and the 1 is the first column header - typically either "SampleID" or "ObservationID").
expanded support for metadata processing

connected header renaming to script interface, and added more complex processing options for metadata categories. users can now process metadata by splitting on semi-colons (for hierarchical data), or casting to a float or an int.
adding new documentation page

which covers the add_metadata.py script.
fixed minor errors in sphinx build
adding example files

corresponding to the new adding_metadata document.
updated input biom table filename ...

... to correspond to the filename in the examples directory