Added 'attach' and 'detach' to view model. These allow you to truly make a view model "stop listening on all external view models" for better garbage collection. This is only necessary when using viewmodel references other than parentVM/rootVM, since those are cleaned up by autoParent:true.
Added 'autoDetach' flag to list (defaults to false) so that removal of a view model from a list signals it to stop listening on any external reference. It will be automatically re-attached if you add to another list, but in general autoDetach is for scenarios in which view models are disposable and you don't want to worry about cleanup.