Split controllers

The current Swift3 handles all the subresouce requests in BucketController and
Objectcontroller, but it complicates the source code a lot because of many
conditional branches and long line method definitions.  Creating a different
controller class for each subresource improves code readability and
maintainability.

This patch introduces the following controller classes to handle subresource
requests.

 - AclController
 - LocationController
 - LoggingStatusController
 - MultiObjectDeleteController
 - PartController
 - UploadsController
 - UploadController
 - VersioningController

Each class name is based on the resource type written in S3 server access log.
For example, LoggingStatusController handles logging subresource requests which
are logged as 'LOGGING_STATUS' operations in the s3 access log.

Change-Id: Ic6d04301303bc97c1ee9e69ead7db3628b45ac5d