feat(api): Add API object

This introduce api object and removes any function bindings, replaced by functions from this api object.

It also removes all $scope.$on events support, replaced by their api equivalents.

Close #188