Part of #26. Move __init__.py to crawl.py.

Add:
    bitshift/crawler/(__init__, crawl).py
        -Move `__init__.py` to `crawl.py`, and add a `main` block to allow
        running the crawler via `python -m`.
Add parse() and insert() calls to crawler.

Add:
    bitshift/crawler/indexer.py
        -Add `parse()` and `insert()` calls to `_insert_repository_codelets()`.
This is ugly, but it improves the current setup.
Some fixes, mainly involving language detection.
Try to make exception reporting more useful.
Untested fix #33.

Add:
    bitshift/crawler/indexer.py
        -Add conditional to remove the full path of a repository if the owner's
        directory contains only one sub-directory.
Strip encoding lines.
Fix #34.

Add:
    bitshift/crawler/indexer.py
        -Add a `try-except` block to catch the `UnsupportedFileError` exception.
HAHA WHAT ARE ITERATORS
Change format of string returned from ruby server to correct symbol table format.
Make sure parse servers return json loadable data.  Make sure Java server closes client connection.
Adjust test for new language dict.
Can specify port number to run java server on.
Merge conflicts