Plugin base

Structure and CMake file commited.
Macros added, ignore updated

Added convenience macros to a header file for easier work with
attributes and error checking. Also updated the .gitignore for some VS
specific stuff.