create new opportunity from contact or account std SF "new opportunity" button

You should check out our Skuid for CRM package.   It has an account detail page that does opportunities the way you describe. 

http://help.skuid.com/m/getting-started/l/192799-skuid-for-crm-a-set-of-pages-for-standard-salesforc…

Or just get the Account detail page here: 

http://help.skuid.com/m/getting-started/l/151288-copy-paste-individual-sample-pages-you-can-see-in-action-instantly

The contact behavior is a bit more complicated since it requires the creation of two records,  but that is totally feasible.  The “create new opportunity” button on the contact record merely needs to create both a new opportunity record and a new contact role record.  Prepopulation actions on these two actions can pass the contact’s ‘accountId’ to the opporutnity and both the contactId and OpportunityID to the contact role record.  

Do some research here on the community for more information on creating 2 related records in one action.  Skuid does it well and its pretty slick!