Main Changes:
1) Making OpenDwarf applications uniform.
    -In terms of optimizations: remove optimizations that may give advantage to certain platforms.
    -In terms of "appearance"/code: use a common library for as many functionalities as possible (e.g. device selection and initializations at run-time, uniform error checking and messages, OpenCL kernel loading and compilation)
2) Test scripts
    -Verifying correct OpenDwarfs installation by running installed dwarfs with a small test input dataset.
3) Adding input test dataset generation for more dwarfs.
4) New dwarfs added/dwarf applications substitution:
    -Graphical models: HMM, Branch and bound: N-queens
    -CSR, CRC substituted with new implementations (done by nz-ocl)
5) Supporting more platforms:
     -Intel MIC support.
     -FPGA support: adaptation of build procedure to allow Altera OpenCL support, adaptation of two dwarfs (CSR, CRC) for FPGA  (done by nz-ocl)