Handle `@end` of `@namespace` separate from other blocks.

`@namespace` is not an Objective-C container (`@interface` and the like), so it is not tracked like other containers. Instead, we keep track of a separate Parser::CurObjCNamespaceDecl, and call the namespace-spefici Sema methods when we encounter a @namespace or an @end without a current ObjC container context. (It seems like the Parser is responsible for issuing warnings about nesting and such, while Sema just works on converting the tokens into Decls.)

Also, it turns out that nobody cares about the Decl returned by Sema::ActOnAtEnd (which was renamed ActOnEndOfObjCContainer because it isn't used for namespaces), so I've changed its return type to `void`.
Add a test of bad namespace nesting.