How is a "standard" Bitcoin transaction defined?
This is easier said than done, IMO. There are plenty of little fact sheet web pages (e.g. https://www.cryptocompare.com/coins/guides/what-are-the-bitcoin-transaction-types/) lying around that give a list of the "Standard" Bitcoin Transaction types, but nothing super authoritative. 

However, I think the most authoritative source as of this very moment is the Bitcoin core source code. 

I did my own search, recently, to prep for Andreas Antonopoulos' meetup tomorrow: 

https://duckduckgo.com/?q=how+can+I+find+out+if+a+bitcoin+transaction+type+is+considered+standard%3F&amp;t=ha&amp;ia=web

The Mastering Bitcoin book refers to it in three different chapters: 

https://github.com/bitcoinbook/bitcoinbook/search?utf8=%E2%9C%93&amp;q=%22standard+transactions%22&amp;type=

https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch07.asciidoc#multi-signature

I also found a good link to a comprehensive list of them here: 

https://books.google.com/books?id=YHfCBwAAQBAJ&amp;pg=PA92&amp;lpg=PA92&amp;dq=how+can+I+find+out+if+a+bitcoin+transaction+type+is+considered+standard?&amp;source=bl&amp;ots=GK4gh-mjoL&amp;sig=BHl4csT7dQZUPwT61W6-QT1qrR0&amp;hl=en&amp;sa=X&amp;ved=0ahUKEwjD5JCD-obTAhUJ0mMKHdyeCBQQ6AEIQDAF#v=onepage&amp;q=how%20can%20I%20find%20out%20if%20a%20bitcoin%20transaction%20type%20is%20considered%20standard%3F&amp;f=false



And the 5 types, pubkey, pubkey_hash, multisig, script_hash, op_return, have some neato stats here: https://webbtc.com/stats

Long story short, I think you're just going to have to byte the bullet and get a friend who knows C++ to explain the contents of the policy.cpp file to you: 

https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L44

That friend will be me, shortly...

(some time later)

It looks like there are two functions that tell whether a transaction is 'Standard' by Bitcoin Core's logic: IsStandard() and IsStandardTx().

Header: https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.h#L75

Source code: 

IsStandard(): https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L34


IsStandard() first checks the transaction against the Solver.
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L37
Next, IsStandard() checks whether the transaction is an N of 3 multisig: 
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L40
Lastly, if witness transactions are enabled, IsStandard() checks that the transaction is one of the two standard types of witness transactions.
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L53


IsStandardTx(): https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L59


A standard transaction must have a sufficiently low application version. https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L61
The transaction has to have a sufficiently low weight.
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L66
If a given Bitcoin Transaction is a Pay to Script Hash transaction, it must have a small scriptSig value. According to the arithmetic in the comments, that works out to about 15 M of N signers (that is, 15 "co-signers" for a transaction) maximum. AND it has to be push-only. Not sure what "push-only" means, but apparently it's important.
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L76
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L89
Next, it seems that it's checking the scriptPubKey against the IsStandard() function. 
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L97
Null transactions are considered standard, as are transactions that have only one OP_RETURN output. But not empty multisig or dust transactions.
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L103
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L114


I'd guess this is a pretty reasonable standard to which to hold "Standard" transactions.

The comments explain some of it.

If you want to have a look at what inputs and witnesses are considered standard, you can just have a look further down the page, or ask another question on this site.