Fix Smart::Comments enhancer

This commit has the following changes.

* Do not apply to all modules use warnings.
  By this behavior, it causes a problem in the module that
  contains `### [*NOT* Smart::Comments syntax]`.
  To enable Smart::Comments, use Slack::Util or use Slack qw(...)
* Add a version check before patching.
* Time::Piece one-liner can also be applied to a subclass.
* Fix the output encoding.
* Some fixes.
Add support for table output to Smart::Comments
Fix to ignore keyword when appears on hash key.
Change to have `prefix` instead of `appname`
Change to be able to define view of app
Change the required perl version

`use re qw(/flags)` requires re-0.14 or higher.
Change to revive (query|body)_parameters and param

You can use these if you want.
It is recommended that you use req->param.
It does not refuse to use the query_parameters if you want to use query
parameters during POST method absolutely.
Change to avoid given-when syntax

The smartmatch family of features will be experimental from perl-v5.18.0.
Fix appdir detection in non-standard dir structure
Change to delegate some process to the view
Add feature of view to match by extension
Fix a bug the method call replaced unexpectedly
Fix object using Class::Struct instead of hash
Fix a bug that has not been sorted correctly
Change the matching priority to each defined order
Change to \A and \z is treated symmetrically

With this change, it will be necessary to modify some controllers.
Change to `CamelCase` becomes `/camel-case/`
Change the pattern of string has highest priority

Now, the priority order is "string" > {extention} > /regexp/.
Add some test about routing
Fix a bug that most word treated as a keyword