Change neuronlistfh to use MD5 hashes of objects as key, not name
Add test
Direct assignment when registering read/write functions

* quoting the functions can help debugging
* but may cause visibility problems since they are not currently
  exported from nat.
* in general functions must be one of
  - directly assigned
  - named and exported i.e. visible on R's search path
Merge branch 'md5neuronlistfh' of github.com:ajdm/nat into ajdm-md5neuronlistfh

* 'md5neuronlistfh' of github.com:ajdm/nat:
  Add test
  Change neuronlistfh to use MD5 hashes of objects as key, not name
Include digest import in DESCRIPTION
neuronlistfh documentation overhaul - also fix missing export
fix creation/removal of new temporary directory
remove unused as.neuronlistfh.filehash and as.neuronlistfh.default methods

* neuronlist() should now be used for construction
Tidying of code/docs neuronlist constructor

* change first parameter to db to better indicate its nature
update (not run) example of creating a neuronlistfh from a neuronlist

* includes a note about default organisation that we are now using
Major speed improvement for large neuronlistfh - swap to list object

* therefore need to define length and names get/set methods
* even now it can take 700 us to fetch the last element in our standard
  neuronlist. This could be resolved (at a space cost) by using an environment
  for lookup by names and the character vector hashtable for look up by 
  numeric/logical indices.

> microbenchmark(dps2[[last]],times=200)
Unit: microseconds
         expr     min       lq   median       uq      max neval
 dps2[[last]] 941.474 1103.108 1164.106 1273.653 23511.39   200

> microbenchmark(dps2[[16132]],times=200)
Unit: microseconds
          expr     min       lq  median       uq     max neval
 dps2[[16132]] 392.093 399.4845 405.139 420.0255 794.479   200
ensure that neuronlistfh is ordered according to hashtable - and note in docs
Go back to neuronlistfh as a vector

* unable to get sapply/lapply working when the object is a list
* this is a real hack but the best trade-off I can find so far
Change hashtable to the more descriptive keyfilemap

* this design does not insist that the map is a hash table - since the mapping
  is defined when the neuronlist is made and then static.
Give neuronlistfh objects an optional hashmap for rapid lookup by names
ensure that ... args are passed from as.neuronlistfh to neuronlistfh()
fix a test with incorrect
add test for new hashmap option
Merge branch 'ajdm-md5neuronlistfh'

(significantly increases flexibility and also some speed incease)

* ajdm-md5neuronlistfh:
  add test for new hashmap option
  fix a test with incorrect
  ensure that ... args are passed from as.neuronlistfh to neuronlistfh()
  Give neuronlistfh objects an optional hashmap for rapid lookup by names
  Change hashtable to the more descriptive keyfilemap
  Go back to neuronlistfh as a vector
  ensure that neuronlistfh is ordered according to hashtable - and note in docs
  Major speed improvement for large neuronlistfh - swap to list object
  update (not run) example of creating a neuronlistfh from a neuronlist
  Tidying of code/docs neuronlist constructor
  remove unused as.neuronlistfh.filehash and as.neuronlistfh.default methods
  fix creation/removal of new temporary directory
  neuronlistfh documentation overhaul - also fix missing export
  Include digest import in DESCRIPTION
  Add test
  Change neuronlistfh to use MD5 hashes of objects as key, not name