Fix infinite loop in GLP topology generator

This commit fixes a defect that occasionally originated an infinite
loop while building a GLP topology.

If while bulding the topology, the generator found itself in the
condition of being unable to add m links (because near full mesh),
the generator kept trying adding links anyway (unsuccessfully).

Now, the generator, if the same situation occurs, adds nodes util it
is again possible to add m links or until the target topology size is
reached.
Replace ElementTree XML parser with cElementTree

This commit replaces the Python-implemented ElementTree parser with
its C-implemented couterpart (cElementTree). The C implementation is
considerably faster then the Python one.
Minor style changes in code and documentation
Fix defect that crashed link_loads with disconnected topologies.

This commit makes the link_loads function of the core library raise
an appropriate exception if the user tries to calculate link loads of
a traffic matrix that contains at least one OD pair whose origin and
destination nodes belong to two disconnected subgraphs of the
topology.
Add test cases for Topology and DirectedTopology classes.

This commit adds test cases for the Topology and the DirectedTopology
classes of the core library.
Change topologies used for test cases

This commit changes many of the topologies used for the test cases of
the core library.

Before ER-generated topologies were used. Those topologies were
always different and could be disconnected. As a result, test results
were not deterministic.

This commit replaces these topologies with simple topologies (e.g.
trees) or randomly generated GLP topologies with fixed seed, which
are deterministic and connected.

This commit also improves the overall coding style of test cases and
performs some refactoring where appropriate.
Version 0.3.1