feat(history): Add history plugin for undo/redo

This is an implementation of history plugin #67, using custom branch of AngularJS from PR https://github.com/angular/angular.js/pull/10096

It's working properly, but we must way for angular project to merge the PR and perform a release before merging this plugin into master.