api: Stop being overprotective of _url/_query.

We had a whole if-statement to figure out stupid uses of path in cases
where it shouldn't occur, such as the 'fact-names' endpoint or the
experimental endpoints.

However, if you do this as a user, that's on you, should've looked at
the API documentation. Both url and query are _methods for a reason.
tests: Move test_url to a baseapi dir.
tests/_url: Check raise error for invalid endpoint
tests: Add tests for _query in baseapi.

These tests check that _query ends up generating and querying the right
url depending on the different options passed to it.
types: Fix a typo, add some tests.
tests: Add a basic test for connect().