split out cache locking into separate file
refactor add* into separate files
goodbye variadic "optional" parameters
break inflight management out into a module
fix #5178 in refactor branch
fix implicit global
devariadify cache.*
reorganize for readability
refactor maybe* methods to be more consistent
remove the 'use strict' and jshint bits
update docs