Refactored `CSURITemplate` to include comprehensive error handling

* Updates the API to include error references
* Removes stateful parsing on a per instance basis, enabling URI template objects to be reused with new sets of variables
* Added basic description method

---

This is the first in a series of pull requests I'll be opening as I start working more seriously with the library. There are a couple of other changes in the pipeline:

1. Eliminate the internal reliance on category methods on Foundation classes such as `NSObject` and `NSArray`. I think we can cover this easily with a few static functions instead of the category patches, which feel somewhat invasive to me.
1. Integration with `NSURL`. I want to be able to expand the templates into `NSURL` instances with little fuss.
1. Evaluating if a given `NSString` or `NSURL` matches a template object.

Let me know how this stuff is looking to you. Thanks for the great library!