Fixes default button icon positioning and removes redundant style on segmented button.
Fixing issue where clicking on a content-less collection view would throw an error.
Fixes addition of has-icon class to list items that don't actually have an icon defined.

- There are situations where a ListItem will have `hasContentIcon` set to true, but will not have an icon defined.  It's more proper to not add the has-icon class, which makes space for an icon, if there is no icon.
Fixes documentation typo.
Fixes gray background appearing on first and last segments.
Fixes white background appearing on first and last disabled segments.
Merge pull request #681 from sproutcore/team/workmanw/text-field-accessory-view-multi-creates

SC.TextFieldView instantiates and adds accessory views as a child multiple times.
Also fixes serious memory leak when a user types a large amount of text.
Fix desktop vs touch for experimental ScrollView
Makes comment easier to understand.
Adds unit tests proving that customized classNameBindings (ex. 'isActive:active') don't work.  Also fixes the other unit tests in this file that had misplaced parentheses.	.
Fixes customized classNameBindings.  (ex. classNameBindings: ['isWorking:wkg'] )
Actually fixes customized classNameBindings.  (ex. classNameBindings: ['isWorking:wkg'] )

- Accidentally committed testing version.
Merge pull request #787 from rykov/master

Fix Desktop vs Touch for experimental SC.ScrollView
Removes unused and conflicting attribute.
Adds a test child record without a guid and performs basic tests on it.
Adds tests proving that replacing child views or unloading reloading records with child views leaks objects in the store.
Fixes unit tests for child records that don't have primary keys.

- Child records should not need a primary key, since they are just part of the parent record and so they should not be modified to have a 'guid' property and should return null to childRecord.get('guid').
Fixes memory leak in the store when removing or replacing child records.

- The first time that you access a child record, the store updates four caches:  parentRecords (parentStoreKeys => [childStoreKeys]), childRecords (childStoreKeys => parentStoreKeys), records (SC.Record instances), dataHashes (SC.record backing attributes).
- Previously, if you set the child record to null or unloaded and reloaded the parent record or set the child record to a new child record and the child record doesn't have a primary key, the store would create duplicates on all these hashes, resulting in a memory leak.
- Now each time that you set the value of the child record on the parent, it clears the old child record caches in the store.
- See previous tests to prove the memory leak, by modifying the child record and checking the number of properties in the store's caches.
Fixes createNestedRecord for child records without primary keys.

- The previous version had some broken code, such as checking for the existence of id, although it is not set anywhere previously or passed to the function and creating an existingId variable for no purpose.  It also wrapped most of the function in a run loop, but I'm certain it's not necessary.
- The previous version would create a new record even if the child record has no primary key, which would auto-generate a new primary key and thus a new store key each time that same child record needed to be re-accessed.  It also did extra work fixing up the store by having to manipulate the id after creation.
- This version generates a re-usable id upfront for child records that don't have a primary key value.  This means that the id is unique to that child record and if the child record is unloaded and reloaded, even though it doesn't have a primary key, it will still get the same generated id and thus, get the same store key in the store, preventing the store from creating new objects and leaking the caches on the old child record.
- See previous unit tests checking that child records without primary keys keep or lose their id and storeKey properly when manipulated.
Merge pull request #758 from sproutcore/team/workmanw/treecontroller-selectionoptions-persistence

Added bindings between the tree controller and it's tree item observer to keep the selection options in sync