Support change command. Also use interfaces. #01

Commit part 01 due to dodgy Github for Windows bug.

1.) Changed usages of Message and Folder to use the new interfaces
IMessage and IFolder.
2.) Added support for the change command. This has been tested on two
accounts and seems to work, but there may be bugs.
3.) Moved the concept of special folders from a private map to a public
enum.

Note: This commit will potentially break existing applications using
JDeltaSync. This is due to:
1.) The Store interface and the EmailAddCommand and EmailDeleteCommand
classes have been renamed to MessageAddCommand, MessageDelteCommmand and
IStore respectivly.
2.) Several classes have had interfaces extracted from them, and methods
that deal with those classes now deal with the extracted interfaces
instead of concrete implementations. Examples are: IDeltaSyncClient,
IDeltaSyncClientHelper, IMessage, IFolder, IDeltaSyncSession
3.) Some methods in DeltaSyncClientHelper, Store (renamed to IStore),
and derived classes, now deal with collections instead of arrays.
Fallback methods in DeltaSyncClient and DeltaSyncClientHelper (from
ILegacyDeltaSyncClient and ILegacyDeltaSycClientHelper respectively)
allow the old methods to be used, but these are NOT recommended.
4.) Some methods in Store (renamed to IStore) have had parameters added
to methods to allow for support for change.
Support change command. Also use interfaces. #02

Commit part 02 due to dodgy Github for Windows bug.

1.) Changed usages of Message and Folder to use the new interfaces
IMessage and IFolder.
2.) Added support for the change command. This has been tested on two
accounts and seems to work, but there may be bugs.
3.) Moved the concept of special folders from a private map to a public
enum.

Note: This commit will potentially break existing applications using
JDeltaSync. This is due to:
1.) The Store interface and the EmailAddCommand and EmailDeleteCommand
classes have been renamed to MessageAddCommand, MessageDelteCommmand and
IStore respectivly.
2.) Several classes have had interfaces extracted from them, and methods
that deal with those classes now deal with the extracted interfaces
instead of concrete implementations. Examples are: IDeltaSyncClient,
IDeltaSyncClientHelper, IMessage, IFolder, IDeltaSyncSession
3.) Some methods in DeltaSyncClientHelper, Store (renamed to IStore),
and derived classes, now deal with collections instead of arrays.
Fallback methods in DeltaSyncClient and DeltaSyncClientHelper (from
ILegacyDeltaSyncClient and ILegacyDeltaSycClientHelper respectively)
allow the old methods to be used, but these are NOT recommended.
4.) Some methods in Store (renamed to IStore) have had parameters added
to methods to allow for support for change.
Support change command. Also use interfaces. #03

Commit part 03 due to dodgy Github for Windows bug.

1.) Changed usages of Message and Folder to use the new interfaces
IMessage and IFolder.
2.) Added support for the change command. This has been tested on two
accounts and seems to work, but there may be bugs.
3.) Moved the concept of special folders from a private map to a public
enum.

Note: This commit will potentially break existing applications using
JDeltaSync. This is due to:
1.) The Store interface and the EmailAddCommand and EmailDeleteCommand
classes have been renamed to MessageAddCommand, MessageDelteCommmand and
IStore respectivly.
2.) Several classes have had interfaces extracted from them, and methods
that deal with those classes now deal with the extracted interfaces
instead of concrete implementations. Examples are: IDeltaSyncClient,
IDeltaSyncClientHelper, IMessage, IFolder, IDeltaSyncSession
3.) Some methods in DeltaSyncClientHelper, Store (renamed to IStore),
and derived classes, now deal with collections instead of arrays.
Fallback methods in DeltaSyncClient and DeltaSyncClientHelper (from
ILegacyDeltaSyncClient and ILegacyDeltaSycClientHelper respectively)
allow the old methods to be used, but these are NOT recommended.
4.) Some methods in Store (renamed to IStore) have had parameters added
to methods to allow for support for change.