elements: Added PGCompositeElement class

inspired by
https://groups.google.com/d/msg/sqlalchemy/f9BPVHfdvbg/M88ruLo6lzQJ
types: Added PGCompositeType class

inspired by
https://groups.google.com/d/msg/sqlalchemy/f9BPVHfdvbg/M88ruLo6lzQJ
elements: Changed PGCompositeElement to FunctionElement

Changing this to a function element fixes the missing FROM clause when
used in a select query.
test_types: Fixed ST_Dump() test
test_functional: Added first set of ST_Dump() tests
PGCompositeElement: Don't assign key attribute
Comparator: Set key attribute to None

This prevents the following error:

AttributeError: Neither 'PGCompositeElement' object nor 'Comparator'
object has an attribute 'key'
test_functional: Added ORM style test for ST_Dump()
types: Added GeometryDump type

This type can be used as the return type for the ST_Dump() function
functions: Added ST_Dump() function
elements, types: Renamed PGComposite* to Composite*
tests: Removed unnecessary type_ parameter from ST_Dump() calls

type_=GeometryDump is the default now for ST_Dump()
test_functional: Improved ST_Dump() result tests
functions: Added ST_DumpPoints() function
Merge branch 'master' into st-dump
Merge branch 'master' into st-dump

Conflicts:
	geoalchemy2/elements.py
	geoalchemy2/functions.py
	geoalchemy2/tests/test_elements.py
	geoalchemy2/tests/test_types.py
	geoalchemy2/types.py
types: Convert GeometryDump to subclass of CompositeType
functions: Moved ST_Dump() functions into _FUNCTIONS list
test_functional: Use labeled geom attribute
types: Added empty typemap attribute to CompositeType