Simplify pulling out all design document ids from the cache

This allows the code to avoid copying the entire ets entries into
code from a separate module for both efficiency and modularity
purposes. This requires the new ets_lru match code to function.
Fix makefile when run outside of a parent deps direcory
[WIP] Split the ddoc open and validation funs open

These two paths are quite similar in their old incarnation
but quickly get complicated when ddoc revisions are added to
the API. Rather than extend the API with more obscure matching,
this works towards some basic abstraciton which should lead to
an cleaner code.
[WIP] Transition to match based doc lookup

I should note that this is still using a blocking gen-server
call under the covers. This should probably be changed to use
a *_d variant for efficiency's sake. I'll add that to my ets_lru
patch once this code is generally worked out and refactored.
[WIP] Add support for keying the cache by revision

This is not a complete refactoring but it seems closer to the
final API. I'll implement this on the worker side to replace
sending entire docs. Peroformance will need to be tested and
possibly adjustments made to the related changes to ets_lru if
direct access functions are necessary. Finally, ddoc_cache is in
need of some test coverage so I'll probably add some really
basic etap scripts or properties. Overdue but better than the
original hack with bags or overloading stored values as a list
which gets evicted in bulk.
Ignore .eunit copies