xml: fix "InvalidArgument" error value

The value is in `:val`, not `:arg`.
buckets: implement "max-keys" when listing buckets

If max-keys is not an integer, we raise and `InvalidArgument`
error. Otherwise, it is used to limit the number of keys returned. While
the documentation is a bit unclear, the number of keys returned seems to
encompass both the common prefixes and the content entries.

To stay compatible with the previous version, there is no hard limit by
default. Therefore, there is also no limit to this value. If not value
is provided, we return the number of provided elements rounded to the
next hundred. The `IsTruncated` flag is also handled.

All this is done late in the processing, mostly because we can set the
`IsTruncated` easily at this stage. In the earlier stages, only lazy
sequences are used so it should be performant enough.
generalize
print out the correct name, spotted by @brutasse
show a strong resolution towards paging
do not try to parse nil key limits
yield a default max-keys value
Merge branch 'master' into feature/max-keys

Conflicts:
	src/io/pithos/operations.clj
provide a default in parse-int
prepare for new prefix matching
be more resilient
implement paging. the return signature has evolved.
handle new return signature
handle new return signature in delete bucket
handle present but empty delimiter
add tests for filter-content and filter-prefixes
add next-marker for compatibility
rename filter-content to filter-keys for consistency
factor out paging logic so it can be reused accross store implems
simplify and optimize common cases