Initial implementation of neuronlist backed by filehash RDS

* this works ok except that a reveals a few problems associated with the
  filehashRDS subclass of filehash. In particular
  * names(filehash) and size(filehash) are too slow
  * a single directory containing 10,000s of images is slow
    (especially on NFS exports, typical on cluster)
  * sapply(neuronlistfh,length) doesn't work
Extracting sublists from a neuronlistfh now gives a regular neuronlist

* this is safer and simpler than trying to back two lists by the same
  same database.
Refactor as.neuronlist.neuronlistfh() to use `[.neuronlistfh` to do the legwork

* code between these was redundant
subset attached dataframe when subletting neuronlistfh
Carry over attached dataframe in as.neuronlistfh.neuronlist
Add sapply.neuronlistfh() and lapply.neuronlistfh()
import filehash rather loading

* TODO think about making this a suggestion that is imported by use of ::
  operators
start documenting neuronlistfh
missing docs for vertexData argument in as.neuron.ngraph
make as.neuronlist generic (before adding a neuronlistfh method)
fix doc error in with.neuronlist
remove sapply.neuronlistfh 

* there's no generic and if lapply is overridden, we should be ok.
actually import filehash in Description
remaining documentation updates and minor fixes
Functional lapply for neuronlistfh objects

* at the cost of referring to a fake neuronlistfh S4 class
Remove plot3d.neuronlistfh

* no need for this since plot3d.neuronlist will handle this
Merge branch 'fix/neuronlistfh-lapply' into feature/neuronlistfh

* fix/neuronlistfh-lapply:
  Functional lapply for neuronlistfh objects
make sure kcs20 inherits from both neuronlist and list
give neuronlist an optional DATAFRAME argument
Fix import of filehash lapply - ensures that this is available