Converted compiler to use a Zipper for manipulating the query tree.
Adapters can now participate in the query evaluation 
phase optionally choosing to rewrite the query
as they see fit. 

A default implementation is provided with the 
Adapter class that mimics the old behavior.
Fix some circular import problems.

Importing classes where they're defined rather than from the top splicer module that exports them.
Function do not inherit from RelationOp so children() and make_node() need to test for them specifically.
Simplified the FileServer by using the ability
to rewrite the expression tree. 

Note that complex method chaining is now handled by simply replacing the LoadOp with one or more Function() expressions and letting the compiler chain the methods together for us.

The work horse functions (decode and extract_path) have been
moved from this module to relational functions found under splicer.functions.filesystem so that other
adapters can use them.
Renamed "Servers" to "Adapters"
Directory adapter now uses the where clause to filter files before opening and decoding their contents.