[front-end] fix tryInvoke; it returns undefined now
[unit-test, front-end] add tests for tryInvoke and invokeAll
[front-end] add destroy method in APIProvider called when widget is removed
[front-end] separate widget APIs (slots, events) into separate angular module