Keep mInternalObjects in sync for CardArrayAdapter

If setEnableUndo is set to true, CardArrayAdapter
tracks the Cards in the underlying array in a HashMap,
mInternalObjects. If ArrayAdapter methods add, addAll, or insert
are used to manipulate the array, mInternalObjects was not updated.
So, the undo functionality would fail for any Cards added to the
adapter in this way. Fixed this by tracking any changes to the adapter
and reflecting this in mInternalObjects, keeping the HashMap in sync.
Add the ability to restrict swipe direction.

Add a field to specify a direction for cards to be able to be swiped.

Change-Id: Ifae1de11df626639d47af7f686b31720368a52d8
Travis test with new android plugin
Travis test removing components
Travis test add components 19.0.3
Travis test add export term and build
Update card foreground selector styles to have translucent "activated" state.
DEMO: Fixed sectionedList example
Moved to gradle-plugin 0.12 and tools 20
LIB: Adedd a Swipe to Dismiss distance parameter to customize the swipe action #205
Update changelog
Travis tool 20.0.0
Updated doc for 1.8.0
Updated doc for 1.8.0
Switched travis plugin from android to java due to unsupported tool 20
Prepared version 1.8.0
Updated doc for 1.8.0
Fix undo bug when swiping multiple cards.

If more than one card is swiped in a row, the wrong UndoBarHideListener
was being called, so the undo would not work as expected. Fix this by
changing the reference to the correct listener.

Change-Id: Ic12a7658bc3a5a7461b0576f7e2bcc59166d8922
updated doc for Background color in Expand Area
Updated doc for CardWithList

Updated doc #270 #281