Refined and enhanced support for API versioning

* version DSL now can take a `using` option which specifies and array of the methods are allowed: `:header`,`:params`,`:path`(new)
  * if not specified, it will default to `using: [:header, :params]` (so that the version can be passed to the header OR the params)
* the new `:path` option will build the action routes by prefixing the version given a common pattern (i.e., "/v1.0/...")
  * The effects of path versioning will be visible through `rake praxis:routes`
  * the default api prefix pattern is ("/v(version)/") but can changed by either
    * overriding ``Praxis::Request.path_version_prefix` and return the appropriate string prefix (i.e., by default this returns "/v") 
    * or overriding `Praxis::Request.path_version_matcher` and providing the fully custom matching regexp. This regexp must have a capture (named `version`) that would return matched version value.


Signed-off-by: Josep M. Blanquer <blanquer@rightscale.com>
Added a couple more tests to ensure that only allowed version methods can succeed.

Signed-off-by: Josep M. Blanquer <blanquer@rightscale.com>
Merge pull request #64 from rightscale/63-path_versioning

Refined and enhanced support for API versioning
Added a new app generator: praxis new app_name
This creates a blank directory structure ready to get going. It has everything from rackup and initialization, to basic directories, to spec configuration, etc…

Hello world example now is available through: praxis example app_name

At the same time, Thor classes and invocations have been totally reworked so that the Praxis cli can support a clean syntax, while each command can live in a different class, and such that the direct thor commands can still be executed outside the binary, but with similar namespaces.

Signed-off-by: Josep M. Blanquer <blanquer@rightscale.com>
Added .gitkeep files to the empty directories so that those dirs can be directly checked into git for the newly created app.

Signed-off-by: Josep M. Blanquer <blanquer@rightscale.com>
Merge pull request #71 from rightscale/skeleton_generator

Added a new app generator: praxis new app_name
Log details of uncaught exceptions during dispatching.

Signed-off-by: Dane Jensen <dane@rightscale.com>
Merge pull request #72 from careo/log-errors

Log details of uncaught exceptions during dispatching.
WIP
Quick note in changelog with ResourceDefinition and plugin changes.
Polish up a bit more.
Add Application.middleware, and make ResourceDefinition.action_defaults an array
Add ErrorHandler class, configurable with Application#error_handler
Refactor plugin setup a bit, and start with simple authentication
More plugin config polishing.
remove error handler note
WIP tidying up and start stats
Log exceptions in the default ErrorHandler.

Signed-off-by: Dane Jensen <dane@rightscale.com>
move AR and Sequel plugins out, and check everything else in before revising history.
throw in the gemfile