Moved the main infra into the submodule

Now we can reuse just this, instead of the whole shebang
Moved thirdParty to the recorderInfra bit.
Extracted the Storage Manager interface
Moved the StorageManager to the infra part
Using the new method to init the Recorder
Moved the workspace ID thing to the recorderInfra
Moved the call when I get the workspace ID

To avoid a null pointer exception. This happens because some of the
orderings have changed
Formatting

A bit OCD, I know
Added a method to get the RecorderFacade

I will stop making this a singleton, since singletons are terrible
to test
Moved the "knowingWorkspace" stuff to the infra

So we can reuse it later
Changes to the infra
Added test to make sure the workspace is correctly initialized

This replaces the old KnowWorkspaceTest that was moved.

This only tests the eclipse specific mind numbing bits
Fixed a bug in the recorder
COPELogger is a singleton, RecorderFacade is not

So I am using each one in their new specific way.

The reason I chose this, is that we might need to have multiple
recorders in one JVM (IntelliJ thing). This logic could also be applied
to the logger, but it's quite difficult to make it not a singleton
right now.

Ideally, there should not be a single singleton left!
Merge pull request #122 from caiusb/reorg

Moved the main infra into the submodule