using config object for event store and a factory for creating instances

preventing users from using the event store constructors hence changes in the event store parameters should not affect the users implementation in the future
adapting LImitedEventIterator for non-monotonic event stores

if the event order isn't monotonic (according to theire timestamps) the iterrator should not terminate if the first event outside the time range is found.
code formatting
renaming factory methods