Initial implementation

This PR should provide a basic yet working initial implementation.

To-do list:
 - [x] Find a way to elegantly handle multiple pointcuts on the same node
 - [x] Add implementation for the 'around' advice type
 - [ ] Convert Advice into interface with two implementations: NodeAdvice and TemplateAdvice
 - [ ] Add unit tests
 - [ ] Update README.md