Backport jmdobry/angular-data#145.
Backport jmdobry/angular-data#156.
Backport jmdobry/angular-data#167.