Change IR for clang plugin and implement call graph. Merges #291.

Moving towards Bug #1030312
Don't copy line-by-line contents into ES or collect line-by-line nuggets for binary files.

For now, just show "(binary file)" when you try to look at one. That's one step better than now, where we don't even show them in directory listings. Ultimately, I'd like to base64 at least the images and stick them in ES for display.
Expand documentation of refs_by_line().
extracted needle utility functions
reimplemented and generalized + TESTS!!!!!
pep8 fixes
name isn't actually a field...idk how that slipped in
first batch of tests
added tests completing basic csv converage (though need to implement some features)
pass impl tests and properly grouby things with kind
fix decldef representation to match tests
got rid of magic docstring decorator
add inheritance and call graph tests
pep8 compliant for module
indent CSV like PEG grammars
pep8 and documentation
fixed regressions (woo tests!)
moved enviornment function from indexer to plugin
prototype for stateful clang indexer
scaffolding for FileToIndex