Cookie improvements

I've decoupled `Cookie` from the actual act of setting and getting cookies. Currently there are a few limitations to how `Cookie` works that this change mitigates:

0. `Cookie` currently changes the super global `$_COOKIE` when setting to make the state of an application a bit more managable, but this is bad
0. One can't actually change the `Cookie::$cookie_class` var once the `Cookie::$inst` has been instantiated
0. One can't test cookies as there is no class that holds the state of the cookies (it's just held in the super global which is reset as part of `Director::test()`)
0. One can't tell the origin of a cookie (eg: did the application set it and it still needs to be sent, or did we receive it from the browser?)
0. `time()` was used, so testing was made difficult if time was important to the cookie 
0. There was no way to get all the cookies at once (without accessing
the super global)

Todos are in the phpdoc and I'd like to write some tests for the backend as well as update the docs (if there are any) around cookies.