exception refactoring

This brings in line some things we've discussed related to exceptions, namely:

- all exceptions thrown from within cinder namespace inherit from `ci::Exception`. This makes it easier to catch only cinder specific errors, while for example STL thrown exceptions would still go by uncaught.
- `ci::Exception` has a std::string description, that can be filled by passing it to the constructor or with the protected method `setDescription( string )`.
- I've tried to move to using the base descriptiong string throughout existing exceptions, which should be easier to maintain in the future should we need to change this policy.

Still needs testing for compile errors on win32 / winrt.

This is done against glNext branch because there was already some major changes to cinder/Exception.h that existed in glNext but not master branch.