Consistent object disposal

- Added missing dispose methods for classes with disposable components.
- Added missing tests for disposable classes.
- Added disposed components nulling.