Bimonthly commit

Done:
- Created separate classes for database connection and geocode
connection.
- Separated server request operations from GeocodeService.
- Added helper functions like formatArgumentList(), sendGetRequest() and
sendPostRequest() in ServerConnection.
- Made subclasses of ServerConnection to be non-singleton. Just directly
call static methods.
- Cleaned up (at least tried to clean up) all usage of System.out. Use
android.util.Log at all times from now on, so that it's easy to get rid
of debug log calls and such for the release.
- Implemented a way to figure out if a detected connection is free.
- Disabled direct instantiation of WifiConnection objects. Now, call
createWifiConnection() instead. This method returns null if the detected
connection is secured.

To Do:
- Improve OfflineBuffer.shouldPush(). (from last commit)
- Allow application to scan for wifi connections more frequently
(currently runs only once upon start). (from last commit)
- For God's sake, refactor.
- Implement a security feature to adding new records to the database to
prevent (un)intentional database overloading by illegitimate users.