Rename RAW_INPUT to INPUT_RAW on the Request class.
Merge branch 'master' of github.com:vanilla/garden
Merge branch 'master' of /var/www/analytics/vendor/vanilla/garden
Request class tweaks.

- Fix bug where Request->ip() does not return its value.
- Add Request->makeUrl().
Add pluggable-functions.php to include functions that are loaded after addons so they can be overridden.
Schema class tweaks.

- Add support for a datetime data type.
- Add support for one level of nesting in Schema->requireOneOf().
Add Validation->fieldValid() to check whether or not there are errors on a given field.
Fix the doc comments on some classes.
Set up the default garden error handler.

- Add Exception\ErrorException->getBacktrace().
- Add garden_error_handler() to turn errors into exceptions.
- Install garden_error_handler() in functions/autoload.php.
Add Exception\ResponseException to allow a response to be thrown as an exception and break out of the dispatch.
Reformat some of the core functions to match coding standards and remove some unnecessary functions.
Refactor the Schema class and add some features to it.

- Store the field name as part of its properties array.
- Only pass the field array to functions rather than the name too.
- `$field` now refers to the field array and `$fieldname` refers to the field name.
- Reorder the parameters in Schema->addValidator().
- Implement the logic when a Schema->addValidator() is called on an individual field.
Merge branch 'master' of /var/www/analytics/vendor/vanilla/garden
Fix regression bugs in the array function tests.

- When garden added its own error handler the expected exceptions no longer worked in the tests.
Core functions refactoring.

- Comment out some `return null` statements that occur after a trigger_error().
- Change some InvalidArgumentException codes from 400 to 500.
- Renam touchval() to array_touch().
Add some more unit tests for core functions.
Formatting functions refactor.

- Change the function names to snake case.
- Add a file level doc comment.
Add the SecureString class to encrypt and/or sign data.
Flesh out the cli library.

- Fill in some doc comments.
- Use the command schemas during Cli::parseRaw() to resolve some ambiguities.
- Make most of the Args methods fluent.
- Add Cli->schema() and Cli::parseSchema() to allow quick setting of command line arguments.
- Allow Cli->parse() to throw an exception for easier unit testing.
- Remove the reliance on some core functions so that the library can be made standalone.
Rename Schema::parse() to Schema::parseSchema() so that the function can more naturally be copied to other libraries.