Added support for generic server deployment

Now, the deployment is not only for cloud instance, but also any
server that is SSH accessible. The minimum required information
is the IP address of the deployed server.
Added support for OpenStack region
Updated to Chef 10.24.0
Fixed incorrect state when deploying noncloud node
Fixed nil class error on puting debug info
Made IP allocation/deallocation configurable
Fixed an error on installation script
Released the floating IP if finished
Fixed to Chef 10.24.0

I don't want to do that, but I have to due to this issue
http://tickets.opscode.com/browse/CHEF-4123
Used our customized Fog

This is a temporary change until Fog release our pull requests
Fixed an unexpected exit error on dash shell
Fixed an public IP missing error
Added support choosing port of database
Added two fields to database response class

* Deleted rootPassword field
* Added two fields adminUser and adminPassword
Used external IP address as default Chef server URL
Reset dir and path value of RubyGems on setup
Keep using Passenger 3.0

Passenger 4.0 break server things and we don't have to pick up
the latest version right now, so stay with 3.0
Improve documenation of OpenStack credential

* Rename parameter endpoint to auth_url. Endpoint is too generic
and confused so we'd better to rename it.
* Gave an example of what is the valid auth_url looks like.
Added support for choosing cloud credential
Made version update more easier

Follow the steps below for version update:
1. Stop the service: sudo bundle exec passenger stop -p 80
2. Pull latest version: git pull origin master
3. Re-setup: sudo ruby setup.py production
4. Restart the service:
sudo bundle exec passenger start -p 80 -e production -d --user=ubuntu