Move From Mailchimp Gem To Mailchimp-API

Remove old 1.x gem in favour of the new Mailchimp 2.0.x gem. This new
gem brings along Mailchimps v2 API.

GitHub:
issue #41

Conflicts:
	spree_chimpy.gemspec
Take An Optional List_ID In Config.

Since the list_id is simply set by looking up the id using the name of
the list and api, add a config param that can set this automatically. If
this isn't set, it defaults to nil causing the list_id to be set
via the original method.

GitHub:
issue #41

Conflicts:
	spec/lib/list_interface_spec.rb
Move Subscribe To New Mailchimp 2.0 API

Move the subscribe call to the new mailchimp api. In doing this we cause
a break in the list specs. Subscribe is not a method on the data hash
which is returned from the before stub.
Correct Implementation Of Subscribe

Subscribe method for mailchimp API v2.0 corrected from previous commit.
Now all tests pass green and the API interface reacts correctly to
Mailchimps subscribe method.

GitHub:
issue #41
Complete Move To MailChimp API V2.x For Lists

Lists interface now uses the new MailChimp api. Along with the move to
version 2.x, make sure all of the list specs run green.

Conflicts:
	spec/lib/list_interface_spec.rb
Don't Auto Subscribe New Users To Main List.

Create a configuration setting to handle auto subscribing users to the
main list or not. This configuration will be set to false by default
unless changed. This is different than previous behavior where everyone
was auto subscribed.

GitHub:
issue #41

Conflicts:
	lib/spree/chimpy/interface/orders.rb
	spec/lib/orders_interface_spec.rb
Migrate Order Interface To Mailchimp V2 API

Order interface completely migrated to use new Mailchimp v2 API. All
order methods now called directly on the Mailchimp::Ecomm class over the
older underscore class. Accompanying interface specs all green.

GitHub:
issue #41

Conflicts:
	spec/lib/orders_interface_spec.rb
Lists Now Correctly Look Up Listings.

The find_list_id api call to gather all of the lists would fail due to
.lists requiring a list call to receive the first 25 lists in the
account. Correct tests to reflect this change in the list interface.

GitHub:
issue #41
Segments No Longer Take A Hash

API calls dealing with static_segments like add and members_add now no
longer take on a hash. They require strings/ids/and arrays passed
directly into their parameters as needed. Modify the list interface to
utilize these new needs. Include passing tests.

GitHub:
issue #6
Correct Order Delete Mailchimp Call

Order_del section of the Ecomm Mailchimp gem no longer takes a
dictionary. Instead there are a specific order of parameters:

1. Store_id
2. Order_id

Both of these are strings and are sent through to the method in the
above order. Accompanying passing specs.

GitHub:
issue #41

Conflicts:
	spec/lib/orders_interface_spec.rb
Remove All Hash Params In List Interface

Mailchimp's new V2 API removes the need for using one big hash as a
param. However, they IMHO take a serious step backwards and move to a
specific ordered set of params. Remove the use of Hashes in the list
interface and set each call to match the correct order of parameters.

GitHub:
issue #41
Emails Passed To Subscribe/Unsubscribe Are Hashes

The email section of the Mailchimp V2 API unsubscribe and subscribe
method calls are actually hashes with the following id's:

1. email
2. euid
3. leid

The last two are fairly obscure so focus on the first. All tests
passing.
Update Order Sync

Orders can not be synced in the same way that they were in the older
API. If there is no order to remove, Mailchimp will raise an error.
Instead rely on adding an order (since this will be done most often) and
if there is a slim chance that an existing order is already in the
  system (we are syncing an order), then remove it and add the new one.
Updates order hash to match 2.0 API
Highlight Reserved Merge Vars

Mailchimp has a fairly good list of merge vars that should be avoided
at most costs. Add the info into the generated spree_chimpy initializer
file

GitHub:
issue #41
Modify Merge Vars For New Mailchimp 2.0

In the newer version of the API, Mailchimp returns a different type of
data object for merge vars. The complexity of this object has
heightened. Correct the way the api returns a list of merge vars that
are in need of syncing.

GitHub:
issue #41
Update Member Info Call And Response

When an admin runs the user sync task, the application looks up each
memember's info in Mailchimp. The response from this has changed in
mailchimp's 2.0 API. Update the errors print out as well as the correct
response or record from the API call.

GitHub:
issue #41

Conflicts:
	lib/tasks/spree_chimpy.rake
Never Sync Orders

When re-adding orders to the system things become rather inflated.
Simply remove the order and go about life.
Merge pull request #44 from DynamoMTL/backport/mailchim-2.0

Backport/mailchim 2.0