For the actual question you asked - I don't know of any good source of testing definitions or classifications. When in doubt, ask the speaker what he or she means. If the definition given doesn't seem to match the obvious definition, question it - although not necessarily to the speaker (especially if that person is your boss). SQA.SE is a good place to ask to get a feel for how the term is used throughout the industry, IMO.
As for what functional testing and exploratory testing are -
Functional testing and exploratory testing examine two different aspects of classifying tests: What, and how.
"Functional" describes WHAT we test - functionality. Functionality, performance, security, deployability are all terms that describe WHAT aspect of the SUT we are examining.
"Exploratory" describes HOW we test - by exploring the system under test. Scripted, exploratory, with fuzzing, automatically, and manually are all terms that describe HOW we test the SUT.
You can test performance in an exploratory manner, e.g., by wandering through a website with a stop watch. You can test security in an automated manner by creating automated testcases that attempt common security attacks. And so on.
The definition you gave is an over-simplification of functional testing that conflates the "what" - testing functionality - with one part of the "how" - stepping through a requirements document and verifying each of the pieces of functionality that it mentions. This is a common way of performing functionality testing, but it is not the only way. As you mentioned, requirements can include more than functionality, and functional testing does NOT necessarily require documents. In some companies, the main documentation of the requirements is the tests - that's the premise behind Cucumber.
BTW, the inconsistency of software testing definitions throughout the industry is a common source of frustration. It's not just you.