Merge Recombobulation

It's good to pay attention during merges. Totally lost the ability to throw exceptions out of canvas-api.inc.php. Back in there now. Along with somes streamlining ("come see the wheel, reinvented here… daily!") by using substr() rather than a fancy preg_replace() (why did that seem so hard before? Weird. And the preg_replace() wasn't even working.)

Signed-off-by: Seth Battis <SethBattis@stmarksschool.org>
RegExp Filter

Implemented [RegExp filtering](https://github.com/smtech/canvas/issues/20). It's dangerous weapon, but at least if you update your regexp, the whole calendar will be resynced correctly (it checks the regexp before it checks the cache).

Signed-off-by: Seth Battis <SethBattis@stmarksschool.org>
Merge branch 'refs/heads/dev-calendar-ics'