Posts and Post_* improvements

* Share code for unpacking 'form' property
* Make all Post_* models extend Post_Value
  * Use this to handle rules for post_id and form_attribute_id
  * Add check that foreign keys exists
* Add central ORM class to define fk_exists() function
Use general fk_exists check for form check in Group model
Posts: validate required attributes values are present

* Adds a test for require attribute validation
* Updates other tests to make sure they don't fail because
  of a required attribute
Drop support for 'unique' attributes

This turns out to be REALLY ugly to implement. So dropping it unless
requested with a real use case.
Making point and geometry data save properly

Post_* Models now save values but still need to update Posts API.
* Override save() and _build_select() ORM functions to use
  GeomFromText() and AsText() MySQL functions. This gives us WKT strings
* Override get() and set() in Model_Post_Point() to decode WKT and return
  an array of with lat/lon values
* Add test cases for Post Point Model (using PHPUnit DataSets)
* Add test cases for Post Geometry Model (using PHPUnit DataSets)
* Extend Unittest to fix DSN for db connection
* Extend Unittest to fix foreign key errors when truncating tables
* Including GeoPHP submodule for WKT support
Improve other tests model tests with simpler exception test

Also change Post test to extend Unittest_Database_TestCase and use
PHPUnit Datasets as form creation seemed to have been broken by
other DB tests.
Better debug info if Post_Point fails validation
Make sure Point_Geometry/Int/Point inherit rules from Post_Value
Add WKT validation to Post_Geometry model (and extend Post_Value)

Adding gisconverter submodule for WKT validation
Convert Post_Point get/set to use gisconverter and handle WKT or array

* Removing geoPHP submodule
* Add tests for Post_Point validation
Test and Fix loading and savings of Points and Geometries in Posts

* Load points seperately from other values using ORM
* Load Geometry value as WKT
* Add a point and geometry attribute to the test form
* Add point and geometry values to the post tests
* Minor improvement to error message when encoding JSON response
Move database module to my fork with support for Geometry data type
Add phpunit and dbunit to composer.json

Update travis.yml to run phpunit from composer
This is so that we have dbunit available on travis-ci
Add options for 'location' attribute input
Add support for multi-value attributes and refactoring posts save

* Adds cardinality column to attributes
* Refactor posts api to avoid double handling all values when saving
* Handle multi-values in API
* Add special handling for complex (ie Point) values
* Validate cardinality limit (ie. make sure # of values are within limit)
Make posts api return multi value fields properly and add tests

* Also adds Link attribute type used in test
Make title NOT NULL
Merge remote-tracking branch 'ushahidi/posts-improvements-for-migration' into develop

Conflicts:
	.gitmodules
	application/tests/features/api.posts.feature
Fixes after oauth merge

* Fix "response status code" step changing to "guzzle status code"
* Add oauth2Skip