Initial commit
Initial Commit of Ghostream

This commit marks the official first commit of ghostream. Version 0.1.

It current features, a definition of Tuple, Tuple Format and Operator.

It also sketches out the design for a number of operators that will be
included in the final release.

Issues currently known about:

   - Operator joining - sometimes, dependent on order, operator ports
     suffer from slow reader syndrome, resulting in lost data.
   - Pulse needs to be better defined.
   - Split is undefined
   - CSVSource and CSVSink are messy.
   - Tests are limited to examples - need to introduce a testing
     framework.
   - ZeroMQ is currently used as the transport mechanism, I wish t
     explore alternatives
   - Benchmarks against Tuple are missing.
Updated README.md with URL
Removing linking ZMQ in Internals Test placeholder
Simple Test Plaeholder

Still trying to decide the best unit testing strategy to go with, till
then make check can serve as a placeholder.
Extracting HashTable & enforcing safe TupleFormats

This commit extracts HashTable to its own class, allowing proper static
initialisation.

This commit also enforces safety in TupleFormat by asserting that two
fields do not share a common hashcode. This should make debugging easier
in the future - adopting the fail-fast ethos:
http://en.wikipedia.org/wiki/Fail-fast
Updated Testing with new Test Placeholder.

This change adds a simple TestRunner and Test class, in the future this
will be extended to provide all the functionality that will be needed to
support ghostream testing.

Why no an existing framework? Dependencies and features. We don't need
to mock and testing operators requires a different methodology that
simple interface testing.

For those reasons I have chosen to create a simple framework inline,
rather than import a large dependency like Google Test.
Fix bug in initialisation of SerialisedTuple

SerialisedTuple.pointer and .length were not being initialised on
construction leading to segfaults based on uninitilialised deletes.
Improve testing framework for Components

This commit improves the simple testing framework by adding assertEquals
and improving the TestRunner.

Tests for Tuple and TupleFormat have been updated.
Updating README.md with dependencies.
Finalising NullSink.hpp

Remove debug code. Improved comment.
Improve Operator internals.

Removed debug code from Operator. Improved projected internal flow.
Revision of Operator Interface.

This commit makes some revision to the way Operators will work,
focussing on developer simplicity.

This change introduces the before(), after() and processTuple() hooks
which can be used by Operators to control their behaviour.

Operators now feature explicit start() and finish() functions rather
than the old waitForEOS().

In the future Sink Operators will have the responsibility of logging a
finish message once they determine a stream has ended (most likely
timeout based)
Updating README.md to add cppzmq
Update README.md
Updating comment in Tuple.hpp
Merge branch 'master' of github.com:ghostream/ghostream
Writeup of Windows

This commit introduces some commenting around the Windows class. The
interface still needs some work, as well as some exmaple code.
Tests and the start of an Interface for Window

Fleshing out the interface and adding some tests of basic functionality
(capacity and size)
Adding first draft of Developer Principles