added pure python Ghost
implementation + tests
moved ghost content to new folder