Added graphmlxml class

It is an attempt to solve issue #448.

Note that this is a preliminar CL, and probably is necessary to polish some edges:
A new class was introduced and just in case lxml is available it uses it.
There are some hacks, as to be able to reuse the existing code.
The method generate_graphml is still based on the old writer.

Note: It's a resubmission of https://github.com/networkx/networkx/pull/1074
Good catch. Statistics are not affected, but more detailed functionality definitely is.  Maybe something like:

    # `coveralls` needs to be run from the git repository, and it requires
    # the .coverage file that was generated during the testing phase. The
    # .coverage file stores absolute paths to the modules, and since we ran 
    # tests from the installed directory, the paths do not point to files in 
    # the git repository. Although this does not affect reported statistics, 
    # it does prevent coveralls from providing more detailed information on
    # each file. So the paths in .coverage must be modified to match the 
    # repository paths. This is what `fixcoverage.py` does.