Fixes for Backbone

This PR fixes 10 independent issues introduced by commit c4d0c9a, as referenced in #2508 that shouldn't have been commited as part of a change to "add generics" as they have nothing to do with generics.
All fixes have URLs pointing to the official documentation on how the code should work.
Tests have been created to ensure future modifications don't remove the required behavior.