Refactor C API for more robust ABI

The C Interace was never really well defined or documented!

There is a very [long standing issue] [1] open for libsass to improve this.

- Hide all implementation details in the new C API defined in `sass_context.h`
- Split up `Sass_C_Function`, `Sass_Value` and `Sass_Context` in their own code files. This means we also have more (system) header files than before, but IMO that doesn't really matter.
- Added new API beside the old. Include `sass_interface.h` for the old; `sass_context.h` for the new 
- New API context structs "inherit" from each other (unfortunately I was not able to forward declare this inheritance without exposing the struct again, should be possible IMHO). But you can cast them down youself or use the accessor functions of the API (recommended).
- Removed automatic inclusion of `sass2scss.h`
- Added "load only once" guards inside the header files (why is this not done with all header files?)
- Normalized api struct names to camel case to match `Sass_Value` and `Sass_C_Function`
- Added typedefs for `Sass_C_Function_List` and `Sass_C_Function_Callback`

Added a [documentation wiki page] [2] to my local repo!

Since the introduction of autotools build we also can create a `libtool` system library!

There are also three other features implemented in this PR:

- Add json error reporting for new context api (#234)
- Implement generic function callback (register as `*`)
- Implement @warn overloading via custom function (register as `@warn`)
- Also contains a bugfix for #634

I know these should probably go in their own PR, but hadn't had time to do it.
If this is a problem I can remove the commits from this PR!

Since it is a pretty big change, I really would like to see some thumbs up before merging it!

[1]: https://github.com/sass/libsass/issues/79
[2]: https://github.com/mgreter/libsass/wiki/API-Documentation
I really tried, but I didn't figured out how I could do it (underlying it is a Vectorized Object) and only the `<<` operator seems overloaded. I tried to access the vector directly to insert it, but there is too much magick going on there. IMO it would feel more natural to prepend the original function name, but adding it to the end is also working (just feels a bit bad).