Allow deletion of collections via AbstractRestfulController

- Implemented deleteList() method, and updated switch for DELETE method
  to delegateto this method when no identifier is present.
Added ability to replace a collection

- PUT on a collection (i.e., without an identifier) now invokes
  replaceList()
- Rewrote logic in DELETE case to mirror logic in PUT, GET, and DELETE
  cases.
Removed no longer used method

- Removed processPutData() as it is no longer necessary, nor used. Since
  this was only introduced for 2.1, it's safe to remove at this time.
Use strict check against bool false when determining if ID is present
Remove double negations
Added unit test for patch

- PATCH without an identifier should raise an exception
Return 405 response for PATCH without identifier and unknown HTTP methods
Fully qualify Traversable class in docblocks
Merge pull request #3482 from weierophinney/feature/rest-delete-replace-collection

Feature/rest delete replace collection