defer state serialization to the kinesis replication

This will allow us to save state data as RecordMarkers that does not necessarily
need to be replicated onto Kinesis streams.

Bonus: tests!
track pending activity tasks with StateMarkers

Automatic task tracking makes it easier for deciders to retrieve information
about pending tasks when handling events related to ActivityTasks (e.g.:
EventTypeActivityTaskCompleted, EventTypeActivityTaskFailed, etc.).

Deciders can now call FSMContext.ActivityType(lastEvent) to get information
about pending activity tasks.

Pending tasks are automatically cleared when finished (completed, failed,
timed out, etc.).
Merge pull request #54 from fabiokung/activity-tracking

Automatic ActivityTask tracking