New rules for post_type argument

Previously, we were checking of the `post_type` argument existed, then passing that to a filter. WordPress in certain situations passes `post_type` as an empty string which was breaking our query. This PR does the following:

1) If no or empty `post_type` argument, default to `any` post type.
2) If `post_type` argument is present and not empty, use it. This means if you want to query for `post_type` post, you MUST specify it. WP defaults to either post or any depending on the situation. We are NOT mimicking this confusing behavior