Implement con floating-nodes property

This property is a list of the floating descendents of the container,
which appear on workspace containers.
Bugfix: floating nodes are included in descendents

Floating nodes will now be included in the descendents list. This allows
floating nodes to be found in the `find_*` functions, leaves, etc.
Implement con method find_by_id

`find_by_id` returns a con with the given con_id among the cons
descendents
Implement con method find_by_window

`find_by_window` finds the con with the given window id among its
descendents.
Bugfix: support current stable i3 con "type"

In the current stable version of i3, the con `type` property is an
integer that indicates type from an enum in the data header.

When initializing a con, if the json object `type` member is found to be
an int, it will be converted to the new string property internally.
Bump to version 0.3.1