Add etree function

The etree code is obviously based on the functions cs_etree, cs_post and cs_tdfs in the Csparse package by Tim Davis.  The algorithms are well-known and this is not simply a syntax translation in that Julia features have been used.  However, before accepting the pull request you should consider whether this code is so close to the CSparse code as to be a violation of the GPL if included in the julia sources.