small fixes so that ParseEdgeListForAllSubTrees can accept matrix input

* not just dataframes
WIP: RerootNeuron switch to using graph.dfs

* igraph::graph.dfs is rather more useful than RBGL::dfs since it
  returns the parent of each visited node

* however RerootNeuron doesn't work yet because it appears to rely
  on some kind of ordering of the double edgelist
Functional version of RerootNeuron using new SegListFromFullGraph()

* Need to add full test suite for both, but looks good so far
* including passing previously failed test in runitGraphTheory.R
Deprecate Neuron2Graph
Remove RBGL dependency
Tidy up SegListFromFullGraph()
New as.igraph.neuron() and EdgeListFromSegList() functions

* as.igraph.neuron will replace Neuron2Graph
RerootNeuron now uses as.igraph.neuron rather than Neuron2Graph

* much faster
* also improve docs
Fix GetShortestPath.Neuron

* igraph vertices are 1-indexed (not 0 as I assumed previously)
* also remove GetShortestPath.Neuron.ggm which doesn't work anyway
Code tidying in GraphTheory.R

* remove redundant code and comments
Fix bug introduced by minor refactoring of RerootNeuron

* just the sort of thing a unit test would have caught!
Add proper tests for RerootNeuron and for new as.igraph.neuron

* existing RerootNeuron tests weren't doing anything
use degree rather than neighborhood.size

* should be faster
Teach SegListFromFullGraph to cope with directed graphs
Teach RerootNeuron to cope with directed graphs
SegListFromFullGraph -> CoreNeuronFromGraph
More consistent set of (Double)EdgeListFrom(Neuron|SWC) functions
methods to get root and branchpoints for neurons and (directed) igraphs
functional versions of as.igraph.(neuron|igraph|swc)

* these make directed graphs by default
ADD CoreNeuronFromSWC() to parse SWC data using igraph intermediate

* nb this does not produce same result as ParseSWC which actually
  produces the reverse of the segment list one would expect