Sfg interface

Hi,

I am wondering if you could consider this pull request.

The Class StateFlowGraph is refactored into an interface so that multiple implementations can be provided. The class DefaultStateFlowGraph is the default implementation for this interface.

Additional changes are made to configurations and the configuration module to allow select different implementations. 

Another implementation for this interface will be provided in a separate pull request soon.

Thanks,
Alireza